EmailField 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
, но это изменит длины ВСЕХ полей EmailField, поэтому вы также можете попробовать:
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)
в обоих случаях лучше всего поместить этот код в init любого модуля ДО django.contrib.auth в вашем INSTALLED_APPS
Начиная с 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'