Как создать домашнюю страницу для конкретного пользователя
Я занят изучением Django. Моя текущая главная страница отображает сообщения или опубликованные пароли для всех пользователей, у которых есть учетная запись. Я хочу, чтобы на странице входа отображались данные, уникальные для вошедшего пользователя. Я искал решение этой проблемы повсюду... Все кажется простым, но я не могу разобраться. У меня уже есть подробный просмотр всех сообщений, созданных одним пользователем, но я не знаю, как адаптировать его для использования в качестве главной страницы, когда пользователь вошел в систему.
Вот часть кода, с которым я экспериментировал до сих пор. Полагаю, я пытаюсь объединить функциональность класса UserPasswordListView с представлением индекса... но я просто не уверен, как это сделать.
views.py
def index(request):
context = {
'sites': SitePassword.objects.all()
}
return render(request, 'core/index.html', context)
class PasswordListView(ListView):
model = SitePassword
template_name = 'core/index.html'
context_object_name = 'sites'
class UserPasswordListView(ListView):
model = SitePassword
template_name = 'core/user_sitepassword.html'
context_object_name = 'sites'
def get_queryset(self):
user = get_object_or_404(User, username=self.kwargs.get('username'))
return SitePassword.objects.filter(user=user)
class PasswordDetailView(DetailView):
model = SitePassword
models.py
class SitePassword(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
password = models.CharField(max_length=200)
email = models.CharField(max_length=200)
logo = models.CharField(max_length=300)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('sitepassword-detail', kwargs={'pk': self.pk})
urls.py
urlpatterns = [
path('', PasswordListView.as_view(), name='index'),
path('user/<str:username>', UserPasswordListView.as_view(), name='user-sitepassword'),
path('sitepassword/<int:pk>/', PasswordDetailView.as_view(), name='sitepassword-detail'),
path('sitepassword/new/', PasswordCreateView.as_view(), name='sitepassword-create'),
path('sitepassword/<int:pk>/update/', PasswordUpdateView.as_view(), name='sitepassword-update'),
path('sitepassword/<int:pk>/delete/', PasswordDeleteView.as_view(), name='sitepassword-delete'),
path('login/', views.login, name='login'),
]