3

さて、フォームがあり、テンプレートに次のコードがあります。

{% if form.errors %}
    { form.errors %}
{% endif %}

ここで、フォームに必須のユーザー名フィールドがあり、意図的に入力しないとします。それは言うだろう

username
    -This field is required

エラーメッセージのフィールドを伝えるときに表示される「ユーザー名」という単語を変更するにはどうすればよいですか? 私が作成したモデルから名前をとっていると推測しています(私がフォームを作成した)モデルに書いたからです

username = models.CharField(max_length=10)
first_name = models.CharField(max_length=20)

ご覧のとおり、first_name フィールドにエラーがある場合、django はそれを表示します。

first_name
    - *error message*

「first_name」ではなく「First Name」を表示するにはどうすればよいですか?

4

1 に答える 1

4

エラーにカスタム メッセージを追加したい場合は、フォームフィールドの clean メソッドを変更することをお勧めします。

例えば:

class Form(forms.ModelForm):
    class Meta:
        model = User #Assuming User is the name of your model
        fields = ['username','first_name']

    def clean_first_name(self):
        if condition: # A condition that must raise an error
            raise forms.ValidationError(u'Your Custom Validation Error goes here.')
        return self.cleaned_data['first_name']

ただし、デフォルトのエラー メッセージに表示される名前を変更したいだけの場合は、次のようにフィールドに詳細な名前を入力できます。

username = models.CharField(max_length=10, verbose_name="Username")
first_name = models.CharField(max_length=20, verbose_name="First Name")

または暗黙的:

username = models.CharField("Username", max_length=10)
first_name = models.CharField("First Name",max_length=20)

django フォームとフィールドの検証の詳細については、https ://docs.djangoproject.com/en/1.5/ref/forms/validation/#form-and-field-validation を参照してください。

Override default Form エラー メッセージについて: Django override default form エラー メッセージ

http://davedash.com/2008/11/28/custom-error-messages-for-django-forms/

于 2013-09-25T02:35:45.170 に答える