Django 存储在用户类而不是用户配置文件中的数据
我正在尝试创建一个使用默认身份验证的自定义类Django 存储在用户类而不是用户配置文件中的数据,django,django-models,django-forms,django-admin,Django,Django Models,Django Forms,Django Admin,我正在尝试创建一个使用默认身份验证的自定义类Employee。我能够成功注册,但与Django的用户类关联的字段存储在User中,而我的自定义字段存储在Employee中。如何将所有内容存储在Employee中 这是我的表单.py: class UserForm(forms.ModelForm): password = forms.CharField(widget=forms.PasswordInput()) class Meta: model = User
Employee
。我能够成功注册,但与Django的用户类关联的字段存储在User
中,而我的自定义字段存储在Employee
中。如何将所有内容存储在Employee
中
这是我的表单.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')
class Patient(models.Model):
user = models.OneToOneField(User)
sales = models.CharField(max_length=30)
hours = models.CharField(max_length=30)
和mymodels.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')
class Patient(models.Model):
user = models.OneToOneField(User)
sales = models.CharField(max_length=30)
hours = models.CharField(max_length=30)
正如我所说,我更喜欢使用默认身份验证,因此避免使用自定义后端。您使用的通常称为用户配置文件,它不会将添加的字段存储在同一个表中(您已经发现)。有关这方面的更多信息,请访问
您想要做的(以及我在项目中通常需要使用的方法)是。这有点复杂,但一旦你掌握了窍门,就不算太糟了。它将允许您将所有用户字段存储在一个表中,而不是存储在单独的表/模型中。类似于
class Employee(AbstractBaseUser,PermissionsMixin):。。。objects=UserManager()
可能会起作用。