Изменение сообщений валидатора по умолчанию
Вы можете изменить сообщения об ошибках валидаторов по умолчанию с помощью аргумента 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)