将用户信息注册到单独的表

时间:2016-07-27 01:41:45

标签: django

我想将基本信息保存到用户,将其他信息保存到其他表格。我不知道如何将电子邮件保存到其他heepoo表的user_id字段。你能帮帮我吗?

models.py

class School(models.Model):
    id = models.IntegerField(primary_key=True)
    Name = models.CharField(max_length=50, null=False)

    def delete(self, *args, **kwargs):
        self.Mascot.delete()
        super(School, self).delete(*args, **kwargs)
    def __str__(self):
        return self.Name

forms.py

class UserForm(forms.ModelForm):
    email = forms.EmailField(max_length=50, required=True)
    password = forms.CharField(widget=forms.PasswordInput())
    username = forms.HiddenInput()
    class Meta:
        model = User
        fields = ('email', 'password',)

class RegisterForm(forms.ModelForm):
    class Meta:
        model = HeepooUser
        exclude = ('allow_phone')

views.py

def register(request):
    registered = False
    if request.method == 'POST':
        user_form = UserForm(request.POST)
        profile_form = RegisterForm(request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save(commit=False)
            user.set_password(user.password)
            user = user_form.save()

            profile = profile_form.save(commit=False)
            profile.user = user
            profile = profile_form.save()

            registered = True

一切顺利。

1 个答案:

答案 0 :(得分:0)

当然很多方法都是{User}

OneToOneField
class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    additional_info = models.CharField(max_length=200)