Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

django auth Usuário truncando campo de email


O comprimento de 75 caracteres do EmailField é codificado em django. Você pode corrigir isso assim:
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

mas isso mudará TODOS os comprimentos dos campos EmailField, então você também pode tentar:
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)

das duas maneiras, seria melhor colocar este código no init de qualquer módulo ANTES de django.contrib.auth em seu INSTALLED_APPS

Desde o Django 1.5, você pode usar seu próprio modelo personalizado baseado no modelo AbstractUser, portanto, você pode usar seus próprios campos e comprimentos. Em seus modelos:
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)

Nas configurações:
AUTH_USER_MODEL = 'your_app.models.User'