2016-03-06 54 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。這有點複雜,但是一旦你掌握了它就不會太糟糕。它將允許您將所有用戶字段存儲在一個表中而不是單獨的表格/模型中。

相關問題