django-allauth:删除注册表单中的密码字段

时间:2018-08-07 13:56:57

标签: django django-models django-forms passwords django-allauth

我在我的项目中使用Django-allauth,并从登录中使用Django-芝麻,它通过电子邮件发送链接,供用户无需密码即可登录。

但是,Django芝麻不处理注册。我试图从注册表单中删除密码字段,因为密码未用于登录。我只希望用户必须输入他们的电子邮件地址。

这就是我所拥有的:

FORMS.PY    
class CustomUserCreationForm(UserCreationForm):
            class Meta(UserCreationForm.Meta):
                model = CustomUser
                fields = ('username', 'email',)

MODELS.PY
class CustomUser(AbstractUser):
    # Add additional fields here. For example, a global-friendly name field
    # name = models.CharField(blank=True, max_length=255)

    def __str__(self):
        return self.email

此代码有效,但是我已经尝试了Internet上的所有内容,但无法删除密码字段。对于它的价值,我可以为每个用户输入一个虚拟密码并隐藏字段,因为用户必须通过令牌电子邮件身份验证登录。

谢谢!

1 个答案:

答案 0 :(得分:0)

带着同样的问题来到这里。用弹出来解决它(在 this question 中找到提示):

class MyCustomSignupForm(SignupForm):
    def __init__(self, *args, **kwargs):
        super(MyCustomSignupForm, self).__init__(*args, **kwargs)
        self.fields.pop('password1')
        self.fields.pop('password2')