Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Python 如何解决为用户指定的未知字段(Id\U卡号)的问题?_Python_Html_Django - Fatal编程技术网

Python 如何解决为用户指定的未知字段(Id\U卡号)的问题?

Python 如何解决为用户指定的未知字段(Id\U卡号)的问题?,python,html,django,Python,Html,Django,我有代码,但每当我进行迁移时,它都会给我错误的为用户指定的未知字段(Id\U卡号)。如何解决这个问题 设置.py 管理员 models.py forms.py 我假设您的models.py在一个名为users的应用程序中(这就是您在AUTH\u USER\u MODEL声明中所说的)。与其将User基于forms.ModelForm,不如将其基于AbstractUser或AbstractBaseUser 您已经开始创建自定义用户模型,但尚未完全遵循。是学习创建自定义用户模型的好资源,下面是创建自

我有代码,但每当我
进行迁移时
,它都会给我错误的
为用户指定的未知字段(Id\U卡号)
。如何解决这个问题

设置.py

管理员

models.py

forms.py


我假设您的
models.py
在一个名为
users
的应用程序中(这就是您在
AUTH\u USER\u MODEL
声明中所说的)。与其将
User
基于
forms.ModelForm
,不如将其基于
AbstractUser
AbstractBaseUser

您已经开始创建自定义用户模型,但尚未完全遵循。是学习创建自定义用户模型的好资源,下面是创建自定义用户模型的快速概述(我建议继承自
AbstractUser
):

在名为
users
的应用程序中的
models.py
文件中:

# users/models.py
from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):
    pass
    # add additional fields in here
在您的设置文件中:

AUTH_USER_MODEL = users.CustomUser
上面的
CustomUser
声明与告诉Django这是现在的
AUTH\u USER\u模型
简单地复制了Django的
AUTH
USER
模型(上面的声明中还没有添加任何字段)

现在,在您可能希望为用户模型设置外键的每个位置,您都可以执行以下操作:

from users.models import CustomUser

class SomeModel(models.Model):
    user = models.ForeignKey('CustomUser', ...)
但是,将FK设置为自定义用户模型的更好方法是通过引用-或者:

from django.contrib.auth import get_user_model

class SomeModel(models.Model):
    user = models.ForeignKey(get_user_model(), ...)

另外,在
admin.py
您的声明中:

from django.contrib.auth.admin import UserAdmin
此语句实际上使用的是Django的
contrib.auth
应用程序中的
User
模型。该用户模型没有
Id\u卡号
,因此我认为这就是导致您看到的错误的原因。注意上面链接的资源中的步骤5-它将告诉您如何在
admin.py
中为
CustomUser
模型设置内容


我假设您的
模型.py
在一个名为
用户
的应用程序中(这就是您在
验证用户模型
声明中所说的)。与其将
User
基于
forms.ModelForm
,不如将其基于
AbstractUser
AbstractBaseUser

您已经开始创建自定义用户模型,但尚未完全遵循。是学习创建自定义用户模型的好资源,下面是创建自定义用户模型的快速概述(我建议继承自
AbstractUser
):

在名为
users
的应用程序中的
models.py
文件中:

# users/models.py
from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):
    pass
    # add additional fields in here
在您的设置文件中:

AUTH_USER_MODEL = users.CustomUser
上面的
CustomUser
声明与告诉Django这是现在的
AUTH\u USER\u模型
简单地复制了Django的
AUTH
USER
模型(上面的声明中还没有添加任何字段)

现在,在您可能希望为用户模型设置外键的每个位置,您都可以执行以下操作:

from users.models import CustomUser

class SomeModel(models.Model):
    user = models.ForeignKey('CustomUser', ...)
但是,将FK设置为自定义用户模型的更好方法是通过引用-或者:

from django.contrib.auth import get_user_model

class SomeModel(models.Model):
    user = models.ForeignKey(get_user_model(), ...)

另外,在
admin.py
您的声明中:

from django.contrib.auth.admin import UserAdmin
此语句实际上使用的是Django的
contrib.auth
应用程序中的
User
模型。该用户模型没有
Id\u卡号
,因此我认为这就是导致您看到的错误的原因。注意上面链接的资源中的步骤5-它将告诉您如何在
admin.py
中为
CustomUser
模型设置内容


您可以尝试以下操作:
AUTH\u USER\u MODEL='users.apps.USER'
。现在它给了我
value错误:无效的模型引用'users.apps.USER'。字符串模型引用必须是“app_label.ModelName”形式。
有人回答吗?我认为在您的用户模型中,您应该扩展django模型,如:
类用户(models.model):
并在您的forms.py文件中使用此模型。您需要在安装的应用程序中声明它,然后再
django.contrib.admin
您可以尝试以下操作:
AUTH\u USER\u model='users.APPS.USER'
。现在它给我
值错误:无效的模型引用'users.APPS.USER'。字符串模型引用必须是“app_label.ModelName”形式。
有人回答吗?我认为在您的用户模型中,您应该扩展django模型,如:
类用户(models.model):
并在您的forms.py文件中使用此模型。您需要在安装的应用程序中声明此模型,然后再
django.contrib.admin
在何处写入
user=models.ForeignKey('CustomUser',…)
以及在
get\u user\u model
和上述两个文件中的点中写入什么?我不明白。这个。。。被称为省略号,用来表示被省略的单词。在我放置省略号的地方,您必须在_delete=上为
指定一个值,例如,您可以选择放入
help\u text=“some help text”
。省略号只是表示附加单词的位置。
user=models.ForeignKey(…)
将是模型上的一个字段。我只是向你展示了不同的写作方法。我更新了答案,以更清楚地显示不同的方式。在哪里写
user=models.ForeignKey('CustomUser',…)
,以及在
get\u user\u model
和上面的两个点中写什么?我不明白。这个。。。被称为省略号,用来表示被省略的单词。在我放置省略号的地方,您必须在_delete=
上为
指定一个值,例如,您可以选择放入
help\u text=“some help text”
。省略号只是表示附加单词的位置。
user=models.ForeignKey(…)
将是模型上的一个字段。我只是向你展示了不同的写作方法。我已经更新了答案,以更清楚地显示不同的方式。