2016-03-06 52 views
0

我正在尝试创建使用默认身份验证的自定义类Employee。我能够成功注册,但与Django用户类关联的字段存储在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) 

就像我说的,我宁愿使用缺省的认证,因此应避免使用自定义的后端

+0

类似于'class Employee(AbstractBaseUser,PermissionsMixin):... objects = UserManager()'可以做到这一点。 https://docs.djangoproject.com/en/1.9/topics/auth/customizing/ – WayBehind

回答

0

您使用的通常称为用户配置文件,它不会将添加的字段存储在同一个表中(您已经发现)。关于这方面的MOre信息可以在Extending existing user model找到。

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

相关问题