什么是';右';Django 1.5+;中扩展用户名字段长度的方法;?

什么是';右';Django 1.5+;中扩展用户名字段长度的方法;?,django,django-models,django-authentication,Django,Django Models,Django Authentication,Django中的用户名限制为max_length=30,由于Django 1.5+版本,因此也可以使用USERNAME_字段设置用户名 但是,不清楚现有的用户名字段如何在仅更改最大长度的同时保持完整(具有所有功能)。我假设需要某种猴子补丁,但正确的方法并不是马上就能做到的 这个问题与1.5之前版本的现有问题不同,它询问的是一个非常具体的猴子补丁,目前还没有在任何其他问题中解决。目前,我求助于以下猴子补丁,它似乎很有效: from django.contrib.auth.forms import

Django中的用户名限制为
max_length=30
,由于Django 1.5+版本,因此也可以使用
USERNAME_字段设置用户名

但是,不清楚现有的
用户名
字段如何在仅更改
最大长度
的同时保持完整(具有所有功能)。我假设需要某种猴子补丁,但正确的方法并不是马上就能做到的


这个问题与1.5之前版本的现有问题不同,它询问的是一个非常具体的猴子补丁,目前还没有在任何其他问题中解决。

目前,我求助于以下猴子补丁,它似乎很有效:

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import AbstractUser


class MyUser(AbstractUser):
    pass

USERNAME_LENGTH = 50
MyUser._meta.get_field('username').max_length = USERNAME_LENGTH
MyUser._meta.get_field('username').validators[0].limit_value = USERNAME_LENGTH
MyUser._meta.get_field('username').validators[1].limit_value = USERNAME_LENGTH
UserCreationForm.base_fields['username'].max_length = USERNAME_LENGTH
UserCreationForm.base_fields['username'].validators[0].limit_value = USERNAME_LENGTH

@KrzysztofSzularz的可能副本所有现有问题都与Django pre-1.5有关。这特别询问了Django 1.5+?@limelights-同样,文档没有解决如何保留默认的
用户名
字段并只修补最大长度的问题。是的,我明白了,我想知道为什么您不想/可以改为重新实现整个字段定义?:)