メッセージだけ変える処理が分からなかったので、バリデーションエラーを新規に作ることで対応しました。一応下記のclean_nameで、メッセージが変わりました。デフォルトで表示されていたメッセージは消えて、このメッセージに置き換わっています。
要件は満たしているので問題ないのですが、既存のエラーメッセージを書き換えるのに、エラー検知の方法も再度書いてメッセージを変えるというのは、間違えたら事ですし回答として余り良くないような気がしています。
そのためこの質問は1週間よりよい回答を待とうと思います。
メッセージだけ変える良い回答をお持ちの方いらっしゃいましたらお手数ですがご回答お願いいたします。
python
1class VillageForm(forms.ModelForm):
2
3 name = forms.CharField(label='',max_length=100, \
4 widget=forms.TextInput(attrs={'id':'vname','class':'village_name','onkeyup':'ShowLength(value,inputlength1);'}))
5
6 content = forms.CharField(required=False,label='',max_length=500,\
7 widget=forms.Textarea(attrs={'id':'vcontent','class':'village_content','onkeyup':'ShowLength(value,inputlength2);'}))
8
9 def clean_name(self):
10 name = self.cleaned_data['name']
11 if Village.objects.filter(name=name).exists():
12 raise forms.ValidationError('同じ名前は既に使われています。別の名前を入力してください。')
13 return name
14
15 class Meta:
16 model = Village
17 fields = ['name','content']
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。