在「MYAPP」我有一個模型「資料」,這股與我的自定義用戶模型OnetoOneField關係。在我的許多觀點中,我需要檢查用戶是否設置了配置文件。所以,我創建了一個模塊「profilecheck」包含此功能:自定義函數來查詢數據庫跨Django的意見
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(總是)返回假。任何想法爲什麼?
編輯響應阿米爾阿德南 –
如果你嘗試'打印(Profile.objects.all())'發生了什麼?也許您的個人資料數據還沒有建立,或者你還沒有登錄.. –