me reste que cette vue simple:Est-ce que formset.is_valid() de django fonctionne?
import datetime
from django import forms
from django.forms.formsets import formset_factory
from django.http import HttpResponse
from django.shortcuts import redirect, render, render_to_response
from django.views.generic.detail import DetailView
from form_utils.forms import BetterForm
from fb_app import models as fb_model
from learn_forms import models as lf_model
class ArticleForm(forms.Form):
title = forms.CharField(required=True)
#pub_date = forms.DateField()
def formset(request):
print request.POST
ArticleFormSet = formset_factory(ArticleForm) # [1]
if request.method == 'POST':
formset = ArticleFormSet(request.POST)
print formset.is_valid()
if formset.is_valid():
# do something with the formset.cleaned_data
pass
else:
formset = ArticleFormSet()
print formset.is_valid()
return render(request, 'formset.html', {
'formset': formset,
})
je clique soumettre à vide champ titre et la validation de formset dit qu'il est valide (j'attends un message sur la valeur requise) Mais si échange Formset avec la forme comme ceci:
ArticleFormSet = ArticleForm
à la ligne marquée par: "# [1]" forme affiche le message 'Ce champ est obligatoire' (ce que je pense)
fichier html:
<form method="post" action="/lf/formset">
{% csrf_token %}
<table>
{{ formset }}
</table>
<input type="submit" name="submit" >
</form>
Qu'est-ce qui ne va pas?
* Où * échoue-t-il? Quelle erreur obtenez-vous exactement? Notez que l'appel de 'is_valid()' dans la clause 'else' échouera, car [les formulaires non liés ne sont pas valides] (https://docs.djangoproject.com/fr/1.5/ref/forms/api/#behavior- de formes non liées). –
mis à jour, j'attends un message sur le titre requis – xliiv