DjangoでOneToOneFieldを参照するとき、参照先のデータがないと RelatedObjectDoesNotExist
が発生してしまう。
models.py
class User(Model):
...
class Profile(Model):
user = models.OneToOneField("User", related_name="profile",)
こんな感じで存在チェックはできない。(profileデータがないと例外が発生する。)
if user.profile:
例外をキャッチすれば判定できるけど、
try:
user.profile
return True
except user._meta.model.profile.RelatedObjectDoesNotExist:
return False
hasattr
を使った方が簡潔。
return hasattr(user, "profile")