2017-08-24 67 views
0

这里是我的模型,我得到这个错误Django的FieldError:未知字段中指定

django.core.exceptions.FieldError: Unknown field(s) (first_name, username, last_name) specified for SystemUser 

。我扩展了用户模型,因为我想向其添加其他字段。

class SystemUser(models.Model): 
    user = models.OneToOneField(User) 
    POSITION_CHOICES = (
     ('ADMIN', 'Admin'), 
     ('SALES EMPLOYEE', 'Sales Employee'), 
     ('INVENTORY MANAGER', 'Inventory Manager'), 
     ('FINANCIAL OFFICER', 'Financial Officer'), 
     ('PROJECT HEAD', 'Project Head'), 
     ('SHIPPER', 'Shipper'), 
     ('SUPPLIER', 'Supplier') 
    ) 
    position = models.CharField(choices=POSITION_CHOICES, max_length=1) 

这里是我的forms.py

class UserForm(forms.ModelForm): 

    password = forms.CharField(widget=forms.PasswordInput) 

    class Meta: 
     model = SystemUser 
     fields = ['username', 'first_name', 'last_name', 'password', 'position'] 
+1

尝试通过在类上使用AbstractUser而不是models.Model或在用户字段上添加on_delete&related_name – pije

回答

3

特殊照顾SystemUser不延长Django的AbstractUser模式,因此字段不存在:

代之以

class SystemUser(models.Model) 

from django.models import AbstractUser 
class SystemUser(AbstractUser) 

编辑: 使用AbstractUser作为Pije76在他的评论中建议的新用户模型的基类。

+0

User和AbstractUser之间的区别是什么? –

相关问题