検索で私の問題の解決策を見つけることができませんでした。だから私は自分のコードに何が間違っているのか尋ねたい。 forms.ModelForm
からフォームを検証しようとしていますが、私のビューの機能ではform.is_valid()を渡しません。ajax投稿付きの単一フィールドでフォームを検証できません
<li>title<ul class="errorlist"><li>This field is required.</li></ul>
モデル::印刷form.errorsは私与え
class Paper(models.Model):
title = models.CharField(max_length=100, help_text='Hello World!')
forms.FormModel
class eventCreateForm(forms.ModelForm):
class Meta:
Model = Paper
fields = ['title']
widgets = {
'title': forms.TextInput(attrs={'class' :'form-control', 'placeholder' : 'Place title'}),
}
ビュー
def create_paper(request):
context = {}
if request.method == 'POST':
form = paperCreateForm(request.POST or None, request.FILES or None)
if form.is_valid():
form_data = form.cleaned_data
t1 = form_data['title']
print(t1)
else:
context['create_paper_form'] = form
form_template = "user/paper-event-template.html"
return HttpResponse(render_to_string(form_template, {'context' : context}))
フォームを検証しますdosen't、およびelse節では、エラーwheを渡しますnはcleaned_data
からそれを取得しようとすると、私が試してみて、フォームを印刷し、それは示していなかった:
<tr><th><label for="id_title">Title:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><input class="form-control" id="id_title" maxlength="100" name="title" placeholder="Place Title" type="text" required /></td></tr>
しかし、それは、私はそれが必要がありますねこれは、任意の値が含まれていdosen't:私はJAXを使用しますフォームデータを送信するための方法:
アヤックス
$('#create_paper_form_id').submit(function (event) {
event.preventDefault();
$.ajax({
type: "POST",
url: "{% url 'Eapp:create_paper' %}",
data: {
csrfmiddlewaretoken : '{{ csrf_token }}',
form_data : $('#create_paper_form_id').serializeArray(),
},
success: function (data) {
console.log(data);
$('.create-paper').html(data);
},
error: function() {
console.log('err');
}
});
});
HTML
<div class="create-paper">
<div class="container-fluid">
<form class="form" id="create_paper_form_id" novalidate="novalidate" action="{% url 'Eapp:create_event' %}" method="POST">
{% for field in create_paper_form %}
<div class="form-group">
<div class="col-xs-12">
{{ field.label_tag }}
</div>
<div class="col-xs-12">
{{ field }}
</div>
<div class="col-xs-6">
{{ field.help_text }}
</div>
<div class="col-xs-6">
{{ field.errors }}
</div>
</div>
{% endfor %}
<div class="form-group">
<div class="col-xs-6 col-sm-6 col-md-2 col-lg-2">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
</div>
</div>
私はあなたのelse節で何をしようとしているのか分かりません。 –
@DanielRoseman何が間違っているかについての情報を得ようとしています。 – vandelay
次に、 'form.errors'を出力してください。 –