A few things mentor__id
will only work in queryset methods, not things like print
. You should also use pk
instead of id
, here is how it would work:
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.pk) # is set and printed to stdout
print(self.mentee.pk) # is set and printed to stdout
if Mentorship.objects.filter(mentor=self.mentor).exists():
raise ValidationError(_('This user is already a mentor.'))
def is_mentor_for_goal(self, mentor_id, mentee_id, personal_goal_id):
return self.exists(mentor__pk=mentor_id, mentee__pk=mentee_id)