django.core.exceptions.FieldError: 未知的领域 /S./ /academic_grade/, 为用户指定

我在里面创建一个表格 forms.py 我有:


class UserForm/forms.ModelForm/:
password = forms.CharField/widget=forms.PasswordInput/

class Meta:
model = User
fields = ['first_name', 'last_name',
'username', 'email', 'academic_grade',]


但我收到以下错误:


django.core.exceptions.FieldError: Unknown field/s/ /academic_grade/ specified for User


我检查数据库,用户表有一列 'academic_grade' grade

models.py


class User/AbstractBaseUser, PermissionsMixin/:
username = models.CharField/max_length=30, blank=True, default=''/
academic_grade = models.CharField/choices=GRADE_CHOICES, default=''/


请花我通过它
已邀请:

詹大官人

赞同来自:

当你运行时 -


python manage.py migrate


django 移动以下应用程序中存在的所有内置模型


'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes'


来自应用程序

django.contrib.auth

有一个内置的表 User, 其中有以下字段 -


Column |

id
password
last_login
is_superuser
username
first_name
last_name
email
is_staff
is_active
date_joined


我担心它被选中 django /通过不正确的导入,或通过在实际创建您自己的用户之前运行迁移命令/.
后者实际上将在模型之前创建用户。

因此,我会建议您或仔细检查您的进口,或者尝试给您 user.For 例如,其他名称


class PersonForm/forms.ModelForm/:
password = forms.CharField/widget=forms.PasswordInput/

class Meta:
model = Person
fields = ['first_name', 'last_name',
'username', 'email', 'academic_grade',]


如果你这么认为,请告诉我它是否有帮助或纠正我 !

帅驴

赞同来自:

另一种可能的场景 - 你可以忘记添加
AUTH_USER_MODEL

在配置中。 /很多次发生在我身上/.

我建议你不要使用 User 作为类名,如果您创建类 customUser.


class CustomUser/AbstractBaseUser, PermissionsMixin/:
username = models.CharField/max_length=30, blank=True, default=''/
academic_grade = models.CharField/choices=GRADE_CHOICES, default=''/



from django.contrib.auth import get_user_model

User = get_user_model//

class UserForm/forms.ModelForm/:
password = forms.CharField/widget=forms.PasswordInput/

class Meta:
model = User
fields = ['first_name', 'last_name',
'username', 'email', 'academic_grade',]


A B. setting.py 添加


AUTH_USER_MODEL = 'appName.CustomUser'


如果你忘了添加
AUTH_USER_MODEL

, 然后在传输时将创建该字段 auth 默认 django. 您可以在迁移文件中检查它们。 所以您正在尝试调用的任何自定义字段 form.py, 将不可用。

要回复问题请先登录注册