数据存储在User类而不是UserProfile中

时间:2016-03-06 23:12:35

标签: django django-models django-forms django-admin

我尝试创建使用默认身份验证的自定义类Employee。我能够成功注册,但与Django的User类关联的字段存储在User,而我的自定义字段存储在Employee中。如何将所有内容存储在Employee

这是我的forms.py

class UserForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput())

    class Meta:
        model = User
        fields = ('username', 'first_name', 'last_name', 'email', 'password')

class EmployeeForm(forms.ModelForm):
    class Meta:
        model = Employee
        fields = ('sales', 'hours')

我的models.py

class Patient(models.Model):
    user = models.OneToOneField(User)
    sales = models.CharField(max_length=30)
    hours = models.CharField(max_length=30)

就像我说的,我更愿意使用默认身份验证,因此避免使用自定义后端

1 个答案:

答案 0 :(得分:0)

您正在使用的内容通常称为用户个人资料,不会将添加的字段存储在同一个表格中(您已找到)。有关该信息的信息可在Extending existing user model

中找到

您想要做的事情(以及我通常需要在我的项目中使用的方法)是Substitute a custom user model。它有点复杂,但是一旦掌握了它,它就不会太糟糕了。它允许您将所有用户字段存储在一个表中,而不是存储在单独的表/模型中。