Часть l oop в шаблоне не отображается - PullRequest
0 голосов
/ 13 июля 2020

код шаблона

<html>
  <head>
    <meta charset="utf-8">
    <title>Customer Page</title>
  </head>
  <body>
    <h1>Dear user, please check if the the email list is correct</h1>
    <ul>
    {% for customer in customer_list.objects.all %}
        <li>{{customer.Country}}</li>
    {% endfor %}
    </ul>
  </body>
</html>

код просмотра

from practice.models import Customer

class CustomersView(ListView):
    template_name = "practice/customer_list.html"
    context_object_name = "customer_list"


    def get_queryset(self):
        return Customer.objects.all()

Однако в приведенном выше коде pylint подчеркивает Customer и заявляет, что «Class 'Customer' не имеет элемента 'objects'»

Браузер показывает только это

Уважаемый пользователь, пожалуйста, проверьте правильность списка адресов электронной почты

, а не часть l oop. Я проверил QuerySet, он не пустой.
In [1]: from practice.models import Customer                                                                               

In [2]: Customer.objects.all()                                                                                             
Out[2]: <QuerySet [<Customer: Customer object (1)>, <Customer: Customer object (2)>]>

Какие могут быть возможные причины?

Ответы [ 2 ]

2 голосов
/ 13 июля 2020

изменить {% for customer in customer_list.objects.all %} на {% for customer in customer_list %}

1 голос
/ 13 июля 2020

в первую очередь удалите метод get_queryset и вместо этого определите атрибут model=Customer - это правильный способ работы с ListView. В вашем случае переопределение get_queryset является избыточным, потому что вы переписываете его точно так же, как при определении модели для своего ListVeiw. Затем, как прокомментировал другой, используйте {% for customer in customer_list %}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...