Отображение списка pull_requests на главной странице - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть модель 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 голосов
/ 22 ноября 2018

У вас несколько проблем.

Основная проблема заключается в том, что get_queryset должен возвращать набор запросов, а не отображать шаблон.Поскольку вы не возвращаете набор запросов и не устанавливаете атрибут model в представлении, Django не может узнать, какой тип объектов вы намереваетесь перечислить, и поэтому не создает объект pullrequests вконтекст шаблона.

Этот метод все равно ничего не делает;вам, вероятно, следует просто удалить его и вместо этого определить атрибут.Итак, ваш взгляд буквально просто:

class home(ListView):
    template_name = 'home.html'  
    model = Pull_Requests

Но учтите также, что имя, создаваемое Django, будет pull_requests_list, поэтому вы должны использовать это в своем шаблоне.(Кроме того, вам не нужен блок if; цикл for содержит предложение empty.) Итак:

{% block body %}
       <div class="container">
            {% for field in pull_requests_list %}
                <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>
            {% empty %}
                <strong> There is no pull request in the database. </strong>
            {% endfor %}
        </div>
{% endblock %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...