在Django用户名被限制为max_length=30
,并且由于Django的1.5+它们也可以通过使用设置USERNAME_FIELD
。
但是,目前尚不清楚该如何现有username
字段可以保持完好(与它拥有的所有功能),而只改变max_length
。 我认为还需要一些猴子打补丁的,但它不是立即做什么所以正确的方式是。
这个问题不是在此之前参考版本1.5,而是询问当前没有任何其他问题解决上所以有一个非常具体的猴子补丁现有的问题重复。
在Django用户名被限制为max_length=30
,并且由于Django的1.5+它们也可以通过使用设置USERNAME_FIELD
。
但是,目前尚不清楚该如何现有username
字段可以保持完好(与它拥有的所有功能),而只改变max_length
。 我认为还需要一些猴子打补丁的,但它不是立即做什么所以正确的方式是。
这个问题不是在此之前参考版本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