Độ dài 75 ký tự của EmailField được mã hóa cứng bằng django. Bạn có thể sửa lỗi này như thế này:
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
nhưng điều này sẽ thay đổi TẤT CẢ độ dài trường Email, vì vậy bạn cũng có thể thử:
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)
cả hai cách tốt nhất là đặt mã này vào init của bất kỳ mô-đun nào TRƯỚC KHI django.contrib.auth trong INSTALLED_APPS
của bạnVì Django 1.5, bạn có thể sử dụng mô hình tùy chỉnh của riêng mình dựa trên mô hình AbstractUser, do đó bạn có thể sử dụng các trường và độ dài của riêng mình.
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)
Trong cài đặt:
AUTH_USER_MODEL = 'your_app.models.User'