我为我的模型编写了一个自定义保存方法:
class UserProfile(User):
sex = models.SmallIntegerField(verbose_name=_(u'Sex'), choices=SEX_TYPES, default=1)
.
.
def save(self, **kwargs):
if self.pk is not None:
UserSettings.objects.create(
user_id = self.pk
)
super(UserProfile, self).save(**kwargs)
和
class UserSettings(models.Model):
user = models.ForeignKey('userprofile.UserProfile', verbose_name=_(u"User"), related_name='own_user', null=True, blank=True)
def __unicode__(self):
return unicode(self.id)
此自定义方法创建UserSettings
对象(在寄存器中)。但在login
之后,另一个UserSettings
会创建。
我该如何避免这个问题?
答案 0 :(得分:2)
def save(self, **kwargs):
settings, created = UserSettings.objects.get_or_create(
user_id=self.pk
)
super(UserProfile, self).save(**kwargs)