首页 > 解决方案 > 在 django 身份验证中为电子邮件字段设置空白 = False

问题描述

我正在使用 django 内置身份验证,对于该身份验证系统,我们获得了不同的字段,例如用户名、电子邮件、密码等。

Username默认情况下是必需的,也不是空白的,但对于电子邮件,它不是必需的(即它为空),这也使它成为空白。

现在为了使它成为必需,我添加了这段代码;

extra_kwags = {'email': {'required': True}}

我尝试了同样的方法blank

extra_kwags = {'email': {'required': True, 'blank': False}}

但它给出的错误blank是不是一个有效的关键字。

所以我想知道是否有办法blank=False在 django 中设置电子邮件字段。

虽然我知道一种方法是强制执行 email_verification 并使电子邮件成为认证方式;

ACCOUNT_AUTHENTICATION_METHOD = 'email' 
ACCOUNT_EMAIL_REQUIRED = True

ACCOUNT_EMAIL_VERIFICATION = 'mandatory'  

但我想知道是否有另一种方法,因为我不希望它制作 authentication_method。

标签: djangodjango-modelsdjango-rest-framework

解决方案


allow_blank该选项在休息框架文档中命名

所以你可以使用它并且验证应该可以工作

from rest_framework.serializers import ModelSerializer

class YourUserSerializer(ModelSerializer):
   ...

   class Meta:
       model = YourUserModel
       extra_kwargs = {'email': {'required': True, 'allow_blank': False}}

推荐阅读