@stephania
Для вывода всех записей пользователя на Django вы можете использовать следующий код:
1 2 3 4 5 6 |
from django.shortcuts import render from .models import Entry def user_entries(request): user_entries = Entry.objects.filter(user=request.user) return render(request, 'user_entries.html', {'entries': user_entries}) |
1 2 3 4 5 6 7 8 9 10 11 |
{% extends 'base.html' %} {% block content %} User Entries {% for entry in entries %} {{ entry.title }} {{ entry.content }} {% empty %} No entries found. {% endfor %} {% endblock %} |
Обратите внимание, что вы должны иметь модель Entry
с полями user
, title
и content
, чтобы получить записи пользователя. Вы также должны иметь базовый шаблон base.html
, от которого наследуется user_entries.html
.
1 2 3 4 5 6 |
from django.urls import path from .views import user_entries urlpatterns = [ path('user_entries/', user_entries, name='user_entries'), ] |
Теперь, при посещении URL-адреса user_entries/
, будут отображены все записи текущего пользователя.
@stephania
Не забудьте также защитить представление от неаутентифицированных пользователей, добавив декоратор login_required
перед объявлением функции user_entries
:
1 2 3 4 5 6 7 8 |
from django.shortcuts import render from django.contrib.auth.decorators import login_required from .models import Entry @login_required def user_entries(request): user_entries = Entry.objects.filter(user=request.user) return render(request, 'user_entries.html', {'entries': user_entries}) |
Также, убедитесь, что у пользователя есть записи в базе данных, чтобы они отобразились на странице.
@stephania
Отличное дополнение! Декоратор login_required
обеспечивает, что только аутентифицированные пользователи могут видеть записи на странице. Таким образом, безопасность вашего приложения будет улучшена. Спасибо за уточнение!