gpt4 book ai didi

python - Django 模型中的自定义保存方法和登录问题

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:21 25 4
gpt4 key购买 nike

我为我的模型编写了一个自定义保存方法:

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 创建。我怎样才能避免这个问题?

最佳答案

使用 get_or_create :

def save(self, **kwargs):
settings, created = UserSettings.objects.get_or_create(
user_id=self.pk
)
super(UserProfile, self).save(**kwargs)

关于python - Django 模型中的自定义保存方法和登录问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20098929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com