Mysql
 sql >> Database >  >> RDS >> Mysql

django auth Utente che tronca il campo e-mail

La lunghezza di 75 caratteri di EmailField è codificata in django. Puoi risolvere questo problema in questo modo:

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

ma questo cambierà la lunghezza di TUTTI i campi EmailField, quindi potresti anche provare:

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)

in entrambi i modi sarebbe meglio inserire questo codice in init di qualsiasi modulo PRIMA di django.contrib.auth nelle tue INSTALLED_APPS

Da Django 1.5 puoi utilizzare il tuo modello personalizzato basato sul modello AbstractUser, quindi puoi utilizzare i tuoi campi e lunghezze. Nei tuoi modelli:

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)

Nelle impostazioni:

AUTH_USER_MODEL = 'your_app.models.User'