7

私はDjangoが初めてで、この質問に対する答えを徹底的に見つけようとしても、何も見つかりませんでした。=/

UserCretionForm を使用してユーザーを作成していますが、いくつか知りたいことがありました。

1 - このフォームのプロパティを管理するにはどうすればよいですか? (例えば、「必須。30 文字...」や「確認のために、上記と同じパスワードを入力してください。」などのヒントを表示したくありません。)

2 - 他のカスタマイズされたフィールドを表示したい。どうすればいいですか?(私は専門家ではないので、表示されるコードをどこに書かなければならないかを明確にしてください = D )。(たとえば、ここブラジルでは、保存する必要があるいくつかの国の情報があります。そのため、これらのフィールドが必要です。)

前もって感謝します!(Y)

4

1 に答える 1

12

デフォルトのバリデータ メッセージの変更

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)
于 2011-12-24T08:40:12.640 に答える