Как создать домашнюю страницу для конкретного пользователя

Я занят изучением 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'),
]
Вернуться на верх