Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 存储在用户类而不是用户配置文件中的数据_Django_Django Models_Django Forms_Django Admin - Fatal编程技术网

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)
和my
models.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()
可能会起作用。