Mysql
 sql >> Datenbank >  >> RDS >> Mysql

django auth Benutzer, der das E-Mail-Feld abschneidet

EmailField mit einer Länge von 75 Zeichen ist in Django fest codiert. Sie können dies folgendermaßen beheben:

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

aber dies wird die Länge ALLER EmailField-Felder ändern, also könnten Sie es auch versuchen:

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 beiden Fällen ist es am besten, diesen Code in die Init eines beliebigen Moduls VOR django.contrib.auth in Ihren INSTALLED_APPS

einzufügen

Seit Django 1.5 können Sie Ihr eigenes benutzerdefiniertes Modell basierend auf dem AbstractUser-Modell verwenden, daher können Sie Ihre eigenen Felder und Längen verwenden. In Ihren Modellen:

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)

In den Einstellungen:

AUTH_USER_MODEL = 'your_app.models.User'