您好,我正在尝试设置显示仅与当前登录的特定用户相关的项目。
我已确定该用户在其用户名下有项目。我希望筛选项目,使其仅允许相关用户查看。目前我收到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
我已经尝试将带有过滤器的queryset设置为登录用户,但返回了相同的错误。
以下是我的观点,我已经尝试过
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 %}
个
我的问题:
我如何显示只与登录用户相关的项目列表?我在这里做错了什么?
2条答案
按热度按时间zf9nrax11#
您确定未找到错误是从视图内部引发的吗?可能您不知何故放错了URL,请求找不到URL。您确定您的请求到达视图吗?您可以使用简单的打印来验证。如果不是,请确保您已将URL包含在根URL文件中。
a6b3iqyw2#
由于self.kwargs是一个键值对,因此需要通过