現在、Djangoのユーザープロファイルに問題があります。Djangoのユーザープロファイル保存時のインライン作成の整合性エラー
私は勧告に続き、ユーザ・プロファイル作成:
class UserProfile(models.Model):
user = models.OneToOneField(User)
is_teacher = models.BooleanField(verbose_name = "Teacher", help_text = "Designates whether this user is a teacher and can administer and add students and classes")
school = models.ForeignKey(School)
def __unicode__(self):
return self.user.username
def save(self, *args, **kwargs):
if not self.pk:
try:
p = UserProfile.objects.get(user=self.user)
self.pk = p.pk
except UserProfile.DoesNotExist:
pass
super(UserProfile, self).save(*args, **kwargs)
を私も自分のユーザー管理ページには、このユーザープロファイルをインライン化。これは私がユーザープロファイルは、ユーザーと一緒に作成されていることを確認するために使用するものです:私は、新しいユーザーを追加するために行くとき
def create_user_profile(sender, instance, created, **kwargs):
"""Create the UserProfile when a new User is saved"""
if created:
print "User Profile Creation: ", created
UserProfile.objects.get_or_create(user=instance)
問題が発生します。学校のフィールドを追加する前に、私はすべてを埋めることができたし、それはうまくいくはずです。学校のフィールドを追加した後、私は、userprofile.school_idがnullでないことを示すIntegrityErrorを取得します。私はここでどこが間違っていますか?
私は、学校の選択がget_or_createに渡されていないと考えているので、UserProfileを作成するときは何も見えません。 is_teacherのチェックボックスをクリックすると、それまでどのように動作しましたか?また、これを修正するにはどうすればいいですか?