Estoy tratando de guardar un formset pero parece estar omitiendo is_valid() aunque haya campos obligatorios.Django formset no valida
Para probar esto tengo una forma sencilla:
class AlbumForm(forms.Form):
name = forms.CharField(required=True)
La vista:
@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))
Y la plantilla:
<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>
Lo que termina pasando es que presiona "agregar" sin ingresar un nombre, luego HttpRespons e ('trabajado') recibe un llamado aparentemente asumiendo que es una forma válida.
Me podría estar perdiendo algo aquí, pero no puedo ver qué pasa. Lo que quiero que suceda es, al igual que cualquier otra forma, si se requiere que el campo escuche un error si no se completa. ¿Alguna idea?
'formset.errors' no se llenará hasta que se llame a' formset.is_valid() ', por lo que esta solución no funcionará por completo. – kubilayeksioglu
Esta no es la solución correcta para publicar – overflow