bonjour et merci de la réponse. 
j'ai regardé tout ca et un peu persévéré. Seulement, je suis toujours
bloqué avec la mise a jour d'un champ a partir d'un updateview. Il ne veut
pas valider mon formulaire. ca devrait etre simple apriori. A l'aide !!  

en détails : 
-----* models *------
class Sujet(models.Model):
    ipp       =models.CharField((u'ipp'),max_length=10,primary_key=True)
    nom       =models.CharField((u'nom'),max_length=200)
    prenom    =models.CharField((u'prenom'),max_length=80)
    birthDate = models.DateField((u'anniv'))

-----*views* => j'ai surcharger un createView et un updateView en leur
asscociant un formulaire ici de mon model : sujet
class SujetCreateView(CreateView):
    template_name = 'aqm/sujet_add.html'
    model = Sujet
    form_class = SujetForm
     
class SujetUpdateView(UpdateView):
    template_name = 'aqm/sujet_update.html'
    model = Sujet
    form_class = SujetForm


-----*urls*-----
 url(r'^Sujet/add/$'                  ,           
SujetCreateView.as_view()     , name='sujet-add'),
 url(r'^Sujet/update/(?P<pk>\d+)$'       , 
UpdateView.as_view(model=Sujet, template_name="aqm/sujet_update.html")),
 

TRUC que j'ai cherché longtemps, c'est l'ajout de (?P<pk>\d+) dans url
afin de dire quel objet je charge

le formulaire pointé en template est : 
-----
<div class="main">
    <form action="{% url success-sujet %}" method="post">{% csrf_token %}
         
         {{ form.as_p }}
         <input type="submit" value="Submit" />
    </form>
</div
-----

c'est l'action url success-sujet qui m'embete et le is_valid (notamment).
je lui demande de faire ca

def successSujet(request):
    if request.method=='POST':
           form=SujetForm(request.POST)      
        if form.is_valid():                          
            form.save()
            return HttpResponseRedirect(reverse('success'))
    else:
        form=SujetForm()
            
    return HttpResponseRedirect(reverse('sujet-add'))   


avec l'url update  et le pk => les champs du formulaire se remplissent
tout seul. si je change un champ en gardant ma clé primaire ipp, JAMAIS,
il ne me valide le formulaire. (si je change la clé ca marche), ce qui
voudrait dire qu'il ne veut pas changer le champ d'une clé qui existe
déja. 
avec updateview, ca devrait bien le faire tout seul NON?

il faut que je fasse quoi : surcharger la methode is_valid, mais comment ?
les exemples sont pas trés clairs

merci d'avance !!
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à