ईमेलफिल्ड 75 वर्णों की लंबाई django में हार्डकोड की गई है। आप इसे इस तरह ठीक कर सकते हैं:
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
लेकिन यह सभी ईमेलफ़ील्ड फ़ील्ड की लंबाई बदल देगा, इसलिए आप यह भी कोशिश कर सकते हैं:
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)
दोनों तरीकों से इस कोड को अपने INSTALLED_APPS में django.contrib.auth से पहले किसी भी मॉड्यूल के init में रखना सबसे अच्छा होगा
Django 1.5 के बाद से आप AbstractUser मॉडल के आधार पर अपने स्वयं के कस्टम मॉडल का उपयोग कर सकते हैं, इसलिए आप अपने स्वयं के फ़ील्ड और लंबाई का उपयोग कर सकते हैं। अपने मॉडल में:
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)
सेटिंग में:
AUTH_USER_MODEL = 'your_app.models.User'