如何在具有oneToOne关系的模型中保存数据

时间:2013-03-13 07:39:14

标签: django django-models python-2.7

我有这个模型

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    role = models.CharField(max_length=30)

如果我收到数据usernamefirstnamelastmameemail,passswordrole,我将如何为此用户创建个人资料,鉴于“角色”不在User model中。它在UserProfile model

1 个答案:

答案 0 :(得分:1)

这是非常基本的,但它有效,我猜你正在使用Django User模型?

user = User.objects.create_user(username, email, password)
user.first_name = firstname
user.last_name = lastname
user.save()

user_profile, created = UserProfile.objects.create_or_create(user=user, role=role)

如果您发现自己做了很多这样做,我会建议您使用自定义管理器方法覆盖管理器objects

class UserProfileManager(models.Manager):
    def create_profile(self, user, role):
        profile = self.create(user=user, role=role)
        return profile

然后你可以用它来调用它:

profile = UserProfile.objects.create_profile(user, role)