我刚刚开始使用 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)