sql >> Databasteknik >  >> RDS >> Mysql

django auth Användaren trunkerar e-postfält

EmailField 75 tecken längd är hårdkodad i django. Du kan fixa det här så här:

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

men detta kommer att ändra längden på ALLA EmailField-fält, så du kan också prova:

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)

båda sätten är det bäst att lägga den här koden i init av valfri modul INNAN django.contrib.auth i din INSTALLED_APPS

Sedan Django 1.5 kan du använda din egen anpassade modell baserad på AbstractUser-modellen, därför kan du använda dina egna fält och längder. I dina modeller:

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)

I inställningar:

AUTH_USER_MODEL = 'your_app.models.User'


  1. MySQL - hur många rader kan jag infoga i en enda INSERT-sats?

  2. Returnera Unix-tidsstämpeln i PostgreSQL

  3. mysql till php till xml visar blank ålder

  4. Hur man ansluter till MySQL med Perl