我是Django的新手,甚至在彻底找到这个问题的答案之后,我找不到任何答案。 = /
我正在使用UserCretionForm来创建我的用户,我想知道一些事情:
1 - 如何管理此表单的属性? (例如,我不想显示“必须.30 charact ...”或“输入与上面相同的密码进行验证的提示。”)
2 - 我想让它显示其他自定义字段。我该怎么做? (请尽量明确我必须写出代码的地方,因为我不是专家= D)。 (例如,在巴西,我们需要存储一些国家信息。这就是我需要这些字段的原因。)
提前致谢! (Y)
答案 0 :(得分:10)
您可以通过error_messages
参数将默认验证器的错误消息更改为表单字段。
要找出每个字段中存在哪些验证器,请点击此处:https://docs.djangoproject.com/en/dev/ref/forms/fields/#built-in-field-classes
class MyForm(UserCreationForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['username'].error_messages = {'invalid': 'foobar'}
self.fields['password1'].error_messages = {'required': 'required, man'}
如果你想添加新的字段,你可以通过子类化(只是python)添加它们。
如果你继承UserCreationForm
并为其添加一个字段,那么最终会得到一个新的表单类,它只包含原始字段和新字段。
class MyForm(UserCreationForm):
extra_field = forms.CharField()
如果您尝试覆盖管理网站默认使用的UserCreationForm
,则必须为ModelAdmin
现代注册新的User
。
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from foo import MyNewUserCreationForm
class NewUserAdmin(UserAdmin):
add_form = MyNewUserCreationForm
admin.site.unregister(User)
admin.site.register(User, NewUserAdmin)