使用自定义用户模型“allauth”不会按预期在管理面板中显示用户名

问题描述 投票:0回答:1

根据这个官方说明我用

custom user
制作了
USERNAME_FIELD = 'email'
模型。我继续使用
username
字段,但不是必需的。
EMAIL
USERNAME
可能不同。问题是管理面板中的
allauth
列中的
USERNAME
显示了用户的电子邮件地址。

作为测试,我做了下一个:

  1. 我创建了 2 个用户,当

    allauth
    username
    应该不同时,
    email
    显示相同的值。

  2. 如果我通过“主页 -> 自定义用户 -> 用户”(

    [email protected]
    [email protected]
    )更改用户的电子邮件,“主页 -> 帐户 -> 电子邮件地址”中的
    allauth
    将在
    User
    列中显示更改后的值
    E-mail address
    列。

我签入了新安装的 Django,一切都按预期工作。

我希望使用这样的

allauth
设置获得我需要的东西:

ACCOUNT_USER_MODEL_USERNAME_FIELD = 'username'
ACCOUNT_USER_MODEL_EMAIL_FIELD = 'email'
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_AUTHENTICATION_METHOD = 'email'

但运气不好。我也尝试了很多不同的设置,但无法解决这个问题。

如果根本不使用

username
字段(从 models.py + ACCOUNT_USER_MODEL_USERNAME_FIELD = None 中删除),并且如果要更改用户的电子邮件,
allauth
不会更改其行为 - 继续在
User
列中显示更改后的电子邮件在
Email address
列中。

出了什么问题?

django django-allauth django-custom-user
1个回答
0
投票
ACCOUNT_USER_MODEL_USERNAME_FIELD = 'username'
ACCOUNT_USERNAME_REQUIRED = True
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'`enter code here`
ACCOUNT_USER_MODEL_EMAIL_FIELD = 'email'



this will work
© www.soinside.com 2019 - 2024. All rights reserved.