首页 > 解决方案 > Django 为什么会出现此错误没有找到与查询匹配的用户配置文件

问题描述

我正在尝试实现加载更多按钮,因此我正在编写此视图以加载 json 数据,但我不明白为什么会出现此错误。No user profile found matching the query Raised by: members.views.UserProfileUpdate

这是我的看法:

class PostJsonListView(View):
    def get(self, *args, **kwargs):
        print(kwargs)
        upper = kwargs.get('num_posts')
        lower = upper - 3 
        posts = list(Blog.objects.values()[lower:upper])
        posts_size = len(Blog.objects.all())
        max_size = True if upper >= posts_size else False
        return JsonResponse({'data': posts, 'max': max_size}, safe=False)

这是我的博客应用程序 urls.py

path('posts-json/<int:num_posts>',PostJsonListView.as_view(),name='json-view')

这是我的会员应用程序 urls.py

path('<slug:slug>/', UserProfileUpdate.as_view(), name='update-profile'),

如果我输入这样的错误网址http://127.0.0.1:8000/sassassdsadasdd/给我同样的错误No user profile found matching the query Raised by: members.views.UserProfileUpdate

标签: javascriptpythonpython-3.xdjango

解决方案


您在UserProfileUpdate视图中,使用slug获取配置文件对象,如下所示:

Profile.objects.get(username=slug)

但! 你应该使用get_object_or_404快捷功能。

from django.shortcuts import get_object_or_404
get_object_or_404(Profile, username=slug)

参考


推荐阅读