Username=self.kwargs.get('username') returning Not Found: /

Здравствуйте, я пытаюсь настроить показ элементов, относящихся только к определенному пользователю, который в данный момент вошел в систему.

Я убедился, что у пользователя есть элементы под его именем пользователя. Я хочу отфильтровать элементы для просмотра только для связанного пользователя. В настоящее время я получаю ошибку Not Found: / Я не уверен, почему?

Вот models.py:

class Item(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, blank=True, null=True)

Вот urls.py:

urlpatterns = [
    #path('', home.as_view(), name='home'), <-- Returned not found
    path('user/<str:username>/', home.as_view(), name='home'), <-- Retuned Not found as well

Я попытался выполнить набор запросов с фильтром для вошедшего пользователя, но вернулась та же ошибка.

Вот мои взгляды, которые я пробовал

class home(LoginRequiredMixin, ListView):
    model = Item
    template_name = 'app_name/base.html'
    context_object_name = 'items'
    # queryset = Item.objects.filter(user=User)


    def get_queryset(self):
        user = get_object_or_404(User, username=self.kwargs.get('username'))
        print(user)

    #     return Item.objects.filter(user=user)

В файле home.html я добавил: {% block head_title %} {{ view.kwargs.username }} | {% endblock %}

Мой вопрос:

Как я могу показать список элементов, относящихся только к вошедшему пользователю? Что я здесь делаю не так?

Поскольку self.kwargs является парой ключ-значение, вам нужно получить доступ к val по

self.kwargs[f'username']  #f string if it is a variable which it should be.
Not
self.kwargs.get('username')

Вы уверены, что ошибка not found возникает внутри вашего представления? Возможно, вы как-то неправильно расположили URL, и запрос не может найти URL. Вы уверены, что ваш запрос достигает представления? Вы можете проверить это с помощью простой печати. Если нет, убедитесь, что вы включили ваши URL в корневой файл urls.

Вернуться на верх