Python 3.6 // Django 2.1.4 // шаблоны: цикл не работает для пользователей - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь отобразить всех пользователей в моей базе данных на html с циклом for, но он ничего не возвращает:

вот мой домашний вид в views.py:

def home(request):
    users = User.objects.all()
    return render( request, 'home.html', { 'users': users } )

вот мойhome.html template:

{% extends 'base_test.html' %} 


{% block content %}

{{user.username}} <!-- returns user1 because he is logged in -->

{% for user in users %} <!-- not working -->
  <p>{{user.username}}</p>
{% endfor %}

{% endblock content %}

User.objects.all () из python3 manage.py shell возвращает:

<QuerySet [<User: user1>, <User: user2>]>

что я делаю не так?

1 Ответ

0 голосов
/ 10 декабря 2018

Решение:

Я пробовал представление на основе классов, и оно работало.с представлением списка views.py

from django.generic.views import ListView
class Home(ListView):
    template_name = 'home.html'
    queryset = User.objects.all()

urls.py (представления, основанные на классе, называются таким образом)

urlspatterns = [
    path('', Home.as_view(), name='home')
]

home.html

{% extends 'base_test.html' %} 
{% block content %}

<!-- i read that the class based view automatically creates variables in the shade for you to use. -->
{% for user in user_list %}

     <!-- added another variable to check if it is effective -->  
    <p>{{user.username}}: {{user.email}}</p> 

{% endfor %}
{% endblock content %}

и цикл for для итерации по пользователям работал отлично.Не стесняйтесь предложить лучшее решение.

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