sql >> Databáze >  >> RDS >> Mysql

django auth Uživatel ořezává pole e-mailu

Délka EmailField 75 znaků je pevně zakódována v django. Můžete to opravit takto:

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

ale tím se změní VŠECHNY délky polí EmailField, takže můžete také zkusit:

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)

oběma způsoby by bylo nejlepší vložit tento kód do init libovolného modulu PŘED django.contrib.auth ve vašem INSTALLED_APPS

Od verze Django 1.5 můžete používat svůj vlastní model založený na modelu AbstractUser, takže můžete používat svá vlastní pole a délky. Ve svých modelech:

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)

V nastavení:

AUTH_USER_MODEL = 'your_app.models.User'


  1. Jak najít umístění datových souborů a souborů protokolu na serveru SQL Server

  2. Plány prodejen sloupců

  3. Chyba migrace v django 2; AttributeError:objekt 'str' nemá žádný atribut 'decode'

  4. Jak spustit uloženou proceduru z Laravelu