通过ModelForm中的Django用户模型覆盖用户名的maxlength/minlength
尝试用以下代码覆盖用户模型,但不知何故,我无法覆盖用户名的最大长度和最小长度 更具体地说,当我通过python manage.py shell检查时,我会覆盖它们。但它似乎对呈现的html没有影响(username maxlength仍然是150) 不知道哪部分出错,请帮忙通过ModelForm中的Django用户模型覆盖用户名的maxlength/minlength,django,django-forms,modelform,Django,Django Forms,Modelform,尝试用以下代码覆盖用户模型,但不知何故,我无法覆盖用户名的最大长度和最小长度 更具体地说,当我通过python manage.py shell检查时,我会覆盖它们。但它似乎对呈现的html没有影响(username maxlength仍然是150) 不知道哪部分出错,请帮忙 from django import forms from django.contrib.auth.models import User class RegistrationForm(forms.ModelForm):
from django import forms
from django.contrib.auth.models import User
class RegistrationForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(RegistrationForm, self).__init__(*args, **kwargs)
email = self.fields['email']
username = self.fields['username']
email.required = True
email.label_suffix = ' '
username.label_suffix = ' '
######### this is not work!!!###############
username.min_length = 6
username.max_length = 30
############################################
class Meta:
model = User
fields = ('username', 'email')
labels = {
'username': '帳號',
}
help_texts = {
'username': '',
}
您应该修改/覆盖模型,而不是修改表单
我建议使用来构建您自己的自定义用户模型。它提供了易于扩展的基本模型、视图和表单。您应该修改/覆盖模型,而不是修改表单
我建议使用来构建您自己的自定义用户模型。它提供了可以轻松扩展的基本模型、视图和表单。如果您试图只覆盖模型表单字段,您可以这样做
class RegistrationForm(forms.ModelForm):
username = forms.CharField(required=True, min_length=6, max_length=30)
class Meta:
model = User
fields = ('username', 'email')
或
但我建议创建一个从AbstractBaseUser继承的自定义用户模型,以覆盖用户名或电子邮件字段,如中所述。如果您试图仅覆盖模型表单字段,可以执行以下操作
class RegistrationForm(forms.ModelForm):
username = forms.CharField(required=True, min_length=6, max_length=30)
class Meta:
model = User
fields = ('username', 'email')
或
但我建议创建一个从AbstractBaseUser继承的自定义用户模型,以覆盖中记录的用户名或电子邮件字段。是的,尝试在表单中覆盖该字段似乎不太清楚,这可能会导致与模型兼容的问题。不过,谢谢兄弟,我会检查如何自定义用户模型。是的,尝试在表单中覆盖字段似乎不太清楚,这可能会导致与模型兼容的问题。不过,谢谢兄弟,我会检查如何定制用户模型。