在'myapp'中我有一个模型'Profile',它与我的自定义User模型共享OnetoOneField关系。在我的许多观点中,我需要检查用户是否设置了个人资料。所以我创建了一个包含这个函数的模块'profilecheck':
def has_profile(req):
try:
profile = Profile.objects.get(user=req.user)
return profile
except:
return False
在我的views.py中,我有以下内容:
from myapp.utils.profilecheck import has_profile
from myapp.models import Profile
def viewprofile(request):
if has_profile(request):
context = {
'profile': has_profile(request)
}
return render(request, 'profile.html', context)
else:
return render(request, 'setup_profile.html', {})
在视图中调用时,has_profile()始终返回False。有什么想法吗?
答案 0 :(得分:0)
因为您试图在has_profile
函数中使用未定义的变量。您正在尝试使用request.user
但未定义request
因此它引发了一个异常,该异常会被except
子句捕获并返回False
,您需要将请求作为has_profile
函数的参数。