username=self.kwargs.get('username') 返回 Not Found: /



嗨,我正在尝试设置显示仅与当前登录的特定用户相关的项目。

我已经确保用户的用户名下有项目。我想筛选只对相关用户查看的项目。目前我收到一个Not Found: /的错误,我不确定为什么?

这是型号.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 %}

我的问题:

如何显示仅与登录用户相关的项目列表?我在这里做错了什么?

您确定未找到的错误是从视图内部引发的吗?也许你不知怎么把URL放错地方了,请求找不到URL。您确定您的请求已到达视图中吗?您可以使用简单的打印来验证这一点。如果没有,请确保已将您的URL包含在根URL文件中。

由于self.kwargs是键值对,您需要通过访问val

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

最新更新