姜戈模型循环



我刚刚开始使用 Django 开发,我慢慢爱上了它。但是,我仍然是一个菜鸟,很难理解为什么这个特定的模型不起作用,所以我在这里。

我在 models.py 有这个模型:

class projectBuildTests(models.Model):
    project = models.CharField(max_length = 50)
    build = models.CharField(max_length = 10)
    testName = models.CharField(max_length = 50)

我的 view.py 是这样的:

def home(request):
    projects = projectBuildTests.objects.all()
    return render_to_response('testrunner/home.html')

在我的家里.html我试图这样展示它:

<label>Project:</label><br>
<select class="project_test_selector" multiple="multiple" size="10">
    {% for project in projects %}
    <option>{{ project.text }}</option>
    {% endfor %}
</select>

我正在使用 django 管理员管理模型数据。它是这样注册的:

admin.site.register(projectBuildTests)

在实际的管理面板中,模型显示有点奇怪。它给了我一堆子对象,而不是我可以附加数据的普通列列表。我不知道我在这里是否有意义:-/

在 views.py 中,您需要在响应上下文中传递projects查询集。

from django.template import RequestContext
def home(request):
    extra_context = {}
    projects = projectBuildTests.objects.all()
    extra_context['projects'] = projects
    return render_to_response('testrunner/home.html', extra_context, context_instance=RequestContext(request))

在您的模板中:

<label>Project:</label><br>
<select class="project_test_selector" multiple="multiple" size="10">
    {% for project in projects %}
        <option>{{ project.testName }}</option>
    {% endfor %}
</select>

编辑一点 Priyank Patel 的回应。Django shorcuts非常有用。例如,您可以导入渲染:

from django.shortcuts import render

然后只需返回:

return render(request, 'testrunner/home.html', extra_context)