我试图改变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'
发布于 2018-08-02 15:41:12
你需要在应用程序中更新模型的user
字段以指向新的自定义用户模型,而不是默认的用户模型()Profileaccountauth.User
https://stackoverflow.com/questions/-100001876
复制相似问题