allauth 用自定义字段替换用户名字段

问题描述

我正在使用 allauth 我希望用户使用用户 ID 而不是用户名字段登录。当我尝试为其设置 setting.py 时

settings.py:

USERNAME_FIELD = None
ACCOUNT_AUTHENTICATION_METHOD = 'user_id'
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_USERNAME_required = False

它给了我这个错误

断言错误在 /accounts/login/ 未提供异常消息

可以同时拥有用户名用户名,但我只想用用户名登录

forms.py:

class CustomLoginForm(LoginForm):
    user_id = forms.IntegerField(required= True,validators=[
        MinValueValidator(10_000_000_00),MaxValueValidator(99_999_999_99)
    ],label='User ID')
    class Meta:
        model = MyUser
        fields = ('user_id',)
        exclude = ('username',)
    def login(self,request,user):
      user.user_id = self.cleaned_data['user_id']

      user.save()
      return user,super(CustomLoginForm,self).login

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)