html 如何解决配置文件匹配查询不存在的错误在django

lskq00tm  于 2022-12-09  发布在  Go
关注(0)|答案(1)|浏览(133)

我是Django框架的新手。这个问题“profile matching query does not exist”出现了,我不明白这个问题是从哪里产生的。请告诉我还需要什么代码来解决这个错误。我会更新这个问题。
配置文件匹配查询不存在
![“配置文件匹配查询不存在”](https://i.stack.imgur.com/YfHio.png
我已经重新检查了urls.py、views.py、索引文件中的代码。但是我无法解决这个问题。
urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('',views.index, name = 'index'),
    path('signup',views.signup, name = 'signup'),
    path('signin',views.signin, name = 'signin'),
    path('logout',views.logout, name = 'logout'),
    path('settings',views.settings, name = 'settings'),
    path('upload',views.upload, name = 'upload'),
]

views.py -〉索引

@login_required(login_url='signin')
def index(request):
    user_object = User.objects.get(username=request.user.username)
    user_profile = Profile.objects.get(user=user_object)
    return render(request, 'index.html', {'user_profile':user_profile})
vd8tlhqk

vd8tlhqk1#

看起来好像没有Profile记录与User对象关联。

def index(request):
    user_object = User.objects.get(username=request.user.username)
    user_profile = Profile.objects.get(user=user_object)

在查找配置文件之前,需要检查user_object的值,尽管可以肯定这是正确的,如果它实际上没有找到关联的Profile记录,则处理Profile.objects.get
你可以通过

try:
   user_profile = Profile.objects.get(user=user_object)
except Profile.DoesNotExist:
   ... handle the error here

或者,您可以使用get_object_or_404方法,如果没有找到记录,该方法会将您重定向到您的404页面。
https://docs.djangoproject.com/en/4.1/topics/http/shortcuts/#get-object-or-404

相关问题