次のようなモデルがあります。
class Mentorship (models.Model):
mentor = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='mentor_user_id')
mentee = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='mentee_user_id')
objects = MentorshipManager()
def clean(self):
print(self.mentor_id) # is set and printed to stdout
print(self.mentee_id) # is set and printed to stdout
if Mentorship.objects.is_mentor(self.mentor_id, self.mentee_id):
raise ValidationError(_('This user is already a mentor.'))
manager には、誰かがすでに別のユーザーのメンターであるかどうかを確認する関数がありclean()
、インスタンスの実行中に呼び出されます。
def is_mentor_for_goal(self, mentor_id, mentee_id, personal_goal_id):
if self.exists(mentor_id=mentor_id, mentee_id=mentee_id):
return True
else:
return False
mentor_id
ただし、存在するormentee_id
属性にアクセスしている間は常に例外が発生します。
Django Version: 1.6.1
Exception Type: TypeError
Exception Value: exists() got an unexpected keyword argument 'mentor_id'
manager 内の _id フィールドにアクセスできない理由はありますか? (保存されていない)インスタンスではフィールドにアクセスできるのに、マネージャーではアクセスできない理由がわかりません。