'myapp'には、私のカスタムUserモデルとOnetoOneField関係を共有するモデル 'Profile'があります。多くの私の見解では、ユーザーがプロファイルを設定しているかどうかを確認する必要があります。だから私はこの機能が含まれているモジュールの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()常に返しますFalse。なぜどんなアイデア?
Aamir Adnan –
に対応して編集しました。 'print(Profile.objects.all())'に何が起こったのですか?あなたのプロフィールデータがまだ作成されていないか、ログインしていない可能性があります。 –