我的数据库中有一个模型Pull_Requests,其中包含数据,我想将此数据显示到主页上的HTML表中。因此,我在下面创建了视图,URL和主文件,但运行该应用程序后却一无所获。由于我是该领域的新手,所以我无法检测到可能是问题所在。预先感谢您的帮助。
from django.shortcuts import render
from django.views import View
class home(ListView):
template_name = 'home.html'
def get_queryset(self, request):
pull_requestsList = Pull_Requests.objects.all()
pullRequest_dict = {'pull_requests': pull_requestsList}
return render(request, self.template_name, pullRequest_dict)
from django.urls import path from. import views
urlpatterns = [
path('', views.home, name='home'),
]
% extends "base.html" %}
{% load static %}
{% block body %}
<div class="container">
{% if pullrequests %}
{% for field in pullrequests %}
<table>
<tr>
<th>{{ field.pr_project }}</th>
<th>{{ field.pr_id }} </th>
<th>{{ field.nd_comments }} </th>
<th>{{ field.nb_added_lines_code }}</th>
<th>{{ field.nb_deleted_lines_code }}</th>
<th>{{ field.nb_commits }}</th>
<th>{{ field.nb_changed_fies }}</th>
<th>{{ field.Closed_status }}</th>
<th>{{ field.reputation }}</th>
<th>{{ field.Label }}</th>
</tr>
</table>
{% endfor %}
{% else %}
<strong> There is no pull request in the database. </strong>
{% endif %}
</div>
{% endblock %}
答案 0 :(得分:0)
您有多个问题。
主要问题是get_queryset
应该返回查询集,而不是呈现模板。由于您没有返回查询集,并且没有在视图上设置model
属性,因此Django无法知道您打算列出的对象类型,因此不会创建{{1 }}对象在模板上下文中。
该方法无论如何都无用。您应该只删除它,然后定义属性。因此,您的看法实际上就是:
pullrequests
但是还要注意,Django创建的名称将是class home(ListView):
template_name = 'home.html'
model = Pull_Requests
,因此您应该在模板中使用它。 (同样,您也不需要pull_requests_list
块; if
循环中有一个for
子句。)因此:
empty