“Django抽象用户”;“值太多,无法解包”;

“Django抽象用户”;“值太多,无法解包”;,django,django-models,python-social-auth,Django,Django Models,Python Social Auth,我一直在尝试使用AbstractUser向标准django用户添加几个字段。然而,在进行动议时,我遇到了一个问题。当我试图使我的迁移成为“值错误:太多的值无法解包”的结果 这是我的密码: 型号.py class TeamMember(AbstractUser): YEAR_LEVELS = ( ('1', '1st'), ('2', '2nd'), ('3', '3rd'), ('4', '4

我一直在尝试使用AbstractUser向标准django用户添加几个字段。然而,在进行动议时,我遇到了一个问题。当我试图使我的迁移成为“值错误:太多的值无法解包”的结果

这是我的密码:

型号.py

class TeamMember(AbstractUser):
    YEAR_LEVELS = (
            ('1', '1st'),
            ('2', '2nd'),
            ('3', '3rd'),
            ('4', '4th'),
            ('5', '5th'),
            ('0', 'Other'),
    )

    SAILING_LEVELS = (
            ('1', 'Beginner'),
            ('2', 'Intermediate'),
            ('3', 'Race'),
    )
    year_level = models.CharField(max_length = 1, choices=YEAR_LEVELS)
    sailing_level = models.CharField(max_length = 1, choices=SAILING_LEVELS)
    board_pos = models.CharField(max_length = 50)
    avatar = models.URLField()
AUTH_USER_MODEL = 'main.models.Users'
SOCIAL_AUTH_USER_MODEL = 'main.models.TeamMember'
设置.py

class TeamMember(AbstractUser):
    YEAR_LEVELS = (
            ('1', '1st'),
            ('2', '2nd'),
            ('3', '3rd'),
            ('4', '4th'),
            ('5', '5th'),
            ('0', 'Other'),
    )

    SAILING_LEVELS = (
            ('1', 'Beginner'),
            ('2', 'Intermediate'),
            ('3', 'Race'),
    )
    year_level = models.CharField(max_length = 1, choices=YEAR_LEVELS)
    sailing_level = models.CharField(max_length = 1, choices=SAILING_LEVELS)
    board_pos = models.CharField(max_length = 50)
    avatar = models.URLField()
AUTH_USER_MODEL = 'main.models.Users'
SOCIAL_AUTH_USER_MODEL = 'main.models.TeamMember'

我还使用python social auth,这是settings.py文件中第二行的用途。

在Django包中,Django/db/models/utils.py 采用“app_label.ModelName”形式的模型或字符串,并返回相应的(“app_label”、“ModelName”)元组。它与代码一起解包:

app\u标签,model\u name=model.split(“.”)

现在您的AUTH_USER_模型是“main.models.Users”。当执行
model.split(“.”)时,列表有三个元素,分配给两个变量,即app_标签和model_名称


尝试根据(“应用程序标签”、“模型名”)为AUTH\u USER\u MODEL指定“Users.USER”

我创建了一个AUTH\u USER\u MODEL,出现以下错误:

app_label, model_name = model.split(".")
错误是路由,我的应用程序在apps文件夹中,我的AUTH_USER_模型是:

AUTH_USER_MODEL = 'user.User'

当出现异常时,例如“值错误:太多值无法解包”,Python会告诉您文件中发生错误的行。这是解决问题的起点,如果你不分享这些细节,没有人能帮你。我不会和AbstractUser搞砸的。只需通过OneToOne将Teammember模型绑定到Django的普通用户模型。我添加了
from.models import user
,并将其更改为
AUTH_user_model='main.Users'
,以解决此问题。