Django用户登记表?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (153)

我试图改变Django团的形式。我不想用户名登录,只能通过电子邮件登录。这就是为什么我从Django auth寻找忽略或替换username字段的方法。

我的表格

class registForm(UserCreationForm):
    email = forms.EmailField()
    class Meta:
        model = User
        fields = ('email', 'password1', 'password2', )

我试着添加

username = forms.CharField(default=email)

username = forms.CharField(max_length=50, widget=forms.HiddenInput(), initial={'Hello World'})

但是系统不允许以这种方式添加用户名。

我也试过这样

在Models.py中

class MyUser(AbstractBaseUser):
    email = models.EmailField(
        verbose_name='email address',
        max_length=255,
        unique=True,
    )

    USERNAME_FIELD = 'email'

在环境中

AUTH_USER_MODEL = 'account.MyUser' #my app name is account

但是我得到了这个错误信息

ERRORS: account.Profile.user: (fields.E301) Field defines a relation with the model 'aut h.User', which has been swapped out. HINT: Update the relation to point at 'settings.AUTH_USER_MODEL'

提问于
用户回答回答于

你需要在应用程序中更新模型的user字段以指向新的自定义用户模型,而不是默认的用户模型()Profileaccountauth.User

扫码关注云+社区

领取腾讯云代金券