gpt4 book ai didi

python - get_object_or_404() 的第一个参数必须是模型、管理器或查询集,而不是 'function'

转载 作者:行者123 更新时间:2023-12-01 07:44:58 25 4
gpt4 key购买 nike

我试图根据数据库中的 user_id 显示一些数据,但它不断收到此 ValueError。谁能帮我找出我做错了什么?

这是我的观点.py

from django.shortcuts import render, get_object_or_404
from .models import user

def index(request):
return render(request, 'pages/index.html')

def user(request, user_id):
profile = get_object_or_404(user, pk=user_id)
context = {
'profile' : profile
}
return render(request, 'user/user.html', context)

最佳答案

由于您定义了一个名为 user 的函数,这已经覆盖了对 user 的引用模型在这里。

您可以在导入中使用别名,例如:

from django.shortcuts import render, get_object_or_404
from .models import user <b>as UserModel</b>

def index(request):
return render(request, 'pages/index.html')

def user(request, user_id):
profile = get_object_or_404(<b>UserModel</b>, pk=user_id)
context = {
'profile' : profile
}
return render(request, 'user/user.html', context)

话虽这么说,根据 PEP-8 style guidelines类名应该写成CamelCase ,以及 lowercase_separated_by_underscores 中的函数。因此,如果遵守这些准则,您应该重命名您的 user型号为User .

由于 Django 已经有一个名为 User [Django-doc] 的模型(在 django.contrib.auth 中),您可能需要重命名为 Profile例如。

关于python - get_object_or_404() 的第一个参数必须是模型、管理器或查询集,而不是 'function',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56506296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com