丼たかご教授頂ければ幸いです。よろしくお願いいたします。
djangoのformのvalidateエラーメッセージが二個表示されてしまうのですが、なぜでしょうか。
下の方のエラーメッセージは任意に出しているのですが、上の方はなぜ出現してしまうのでしょうか?
base.htmlなどは作成しておりません。
該当コードは下記の通りです。
FORM
from django.core.exceptions import ValidationError from django.forms import ModelForm from django import forms from .models import Blog class BlogForm(forms.Form): title = forms.CharField( label='タイトル', required=True, max_length=150, ) text = forms.CharField( label='テキスト', required=True, max_length=500, widget=forms.Textarea, ) def clean(self): title = self.cleaned_data['title'] text = self.cleaned_data['text'] blog = Blog.objects.filter( title=title, text=text, ).exists() if blog: raise ValidationError('入力したタイトルとテキストの組み合わせは既に登録済みです。')
ビュー
from django.shortcuts import render from myapp.models import Blog from myapp.forms import BlogForm def blog_form(request): form = BlogForm if request.method == 'POST': form = BlogForm(request.POST) if form.is_valid(): blog = Blog.objects.create( title=form.cleaned_data['title'], text=form.cleaned_data['text'], ) context = { 'form': form } return render(request, 'myapp/blog_form.html', context)
テンプレート
<form action="{% url 'myapp:blog_form' %}" method="POST">{% csrf_token %} {{ form.as_p }} <button type="submit">save</button> </form> {% if form.non_field_errors|length != 0 %} {{ form.non_field_errors }} {% endif %}
上のエラーメッセージは出力されないようにしたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/02/08 00:56