ユーザーが次のページにリダイレクトされる前に、すべてのフィールドを入力するようにします。フィールドを埋めることができない場合は、フィールドを埋めるように指示するエラーが発生してから処理が進まなければなりません。そうするために、私は以下のコードを書いた。しかし、私が直面している問題は、フィールドを塗りつぶさなくても、同じページに戻すのではなく、次のページに移動してエラーが発生しないということです。Django ModelFormの検証が機能しない
ユーザーを次のページに移動させる前に、これらのフィールドを検証するにはどうすればよいですか?
モデル
from django.core.exceptions import ValidationError
class Memb(models.Model):
slug=models.CharField(max_length=100)
member=models.CharField(max_length=100)
def __unicode__(self):
return self.member, self.slug
def clean_slug(self):
data=self.cleaned_data['slug']
if "Testy" not in data:
raise ValidationError("Enter the correct name for this field")
class MembForm(ModelForm):
class Meta:
model=Memb
fields=('slug','member')
ビュー
def my_memb(request):
if request.method=="POST":
form=MembForm(request.POST)
if form.is_valid():
data=form.cleaned_data
form.save()
return HttpResponseRedirect('/good/')
else:
form=MembForm()
return render_to_response('member.html',{'MembForm':MembForm}, context_instance=RequestContext(request))
テンプレート
{% block content %}
<form action="" method="POST">
{{MembForm.as_p}}
<input type="submit" value="Add"/>
</form>
{% endblock %}
のようなものにリダイレクトすることができます。それは今働いている。本当にありがとう! – picomon