“Django抽象用户”;“值太多,无法解包”;
我一直在尝试使用AbstractUser向标准django用户添加几个字段。然而,在进行动议时,我遇到了一个问题。当我试图使我的迁移成为“值错误:太多的值无法解包”的结果 这是我的密码: 型号.py“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
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'
,以解决此问题。