您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

django auth用户截断电子邮件字段

django auth用户截断电子邮件字段

EmailField 75个字??符的长度在django中被硬编码。您可以这样解决

from django.db.models.fields import EmailField
def email_field_init(self, *args, **kwargs):
  kwargs['max_length'] = kwargs.get('max_length', 200)
  CharField.__init__(self, *args, **kwargs)
EmailField.__init__ = email_field_init

但这会更改所有EmailField字段的长度,因此您也可以尝试:

from django.contrib.auth.models import User
from django.utils.translation import ugettext as _
from django.db import models
User.email = models.EmailField(_('e-mail address'), blank=True, max_length=200)

两种方式最好将这段代码放在INSTALLED_APPS中的django.contrib.auth之前的任何模块的init中。

从Django 1.5开始,您可以使用基于AbstractUser模型的自定义模型,因此可以使用自己的字段和长度。在您的模型中:

from django.contrib.auth.models import AbstractUser
from django.db import models

class User(AbstractUser):
    email = models.EmailField(_('e-mail address'), blank=True, max_length=200)

在设置中:

AUTH_USER_MODEL = 'your_app.models.User'
Go 2022/1/1 18:52:56 有356人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶