Próbuję zapisać zestaw, ale wydaje się, że pomija on wartość is_valid(), mimo że są wymagane pola.Zestaw Django nie sprawdza poprawności
Aby to sprawdzić Mam prosty formularz:
class AlbumForm(forms.Form):
name = forms.CharField(required=True)
Widok:
@login_required
def add_album(request, artist):
artist = Artist.objects.get(slug__iexact=artist)
AlbumFormSet = formset_factory(AlbumForm)
if request.method == 'POST':
formset = AlbumFormSet(request.POST, request.FILES)
if formset.is_valid():
return HttpResponse('worked')
else:
formset = AlbumFormSet()
return render_to_response('submissions/addalbum.html', {
'artist': artist,
'formset': formset,
}, context_instance=RequestContext(request))
A szablon:
<form action="" method="post" enctype="multipart/form-data">{% csrf_token %}
{{ formset.management_form }}
{% for form in formset.forms %}
<ul class="addalbumlist">
{% for field in form %}
<li>
{{ field.label_tag }}
{{ field }}
{{ field.errors }}
</li>
{% endfor %}
</ul>
{% endfor %}
<div class="inpwrap">
<input type="button" value="add another">
<input type="submit" value="add">
</div>
</form>
Co kończy się dzieje to ja naciśnij "dodaj" bez wpisywania nazwy, a następnie HttpRespons e ("pracował") nazywane jest get, na pozór zakładając, że jest to poprawna forma.
Może brakuje mi czegoś tutaj, ale nie widzę, co jest nie tak. To, co chcę zrobić, to tak jak każda inna forma, jeśli pole jest wymagane do wypowiedzenia błędu, jeśli nie jest wypełnione. Jakieś pomysły?
'formset.errors' nie zostanie wypełnione, dopóki nie zostanie wywołane' formset.is_valid() ', więc to rozwiązanie całkowicie nie zadziała. – kubilayeksioglu
To nie jest poprawne rozwiązanie do publikowania – overflow