在首页上显示pull_requests列表

时间:2018-11-22 08:56:17

标签: django sqlite

我的数据库中有一个模型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 %}

1 个答案:

答案 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