Ppour qu'un champ ne soit pas dans le formulaire il suffit d'ajouter
l'attribut editable.
Par exemple :

>     dateFin =                           models.DateField(null=True,
> blank=True, editable=False)
>

Ensuite pour calculer la valeur je surcharge save() :

>     def save(self, *args, **kwargs):
>         self.dateFin = self.calcDateFin
>         super(nomdelaclass, self).save( *args, **kwargs)
>




-------------------------------------------
FDV


Le 3 septembre 2014 17:08, christophe de saint leger <[email protected]>
a écrit :

>  Salut,
>
> perso je travaillerai au niveau du model ( méthode save() ) , pour les
> champs dont la valeur va être déduite automatiquement.
> Au niveau Form, de ce fait je ne mettrai que les champs obligatoires ou
> non et modifiables par l'utilisateur.
>
> Ainsi ton Form ne contient que les champs dont tu as vraiment besoin.
>
> C'est mon avis perso, ce n'est donc pas forcément la meilleure solution ;)
>
> Ch.
>
> Le 03/09/2014 16:55, Charlie Gentil a écrit :
>
> Bonjour à tous,
>
>
>
> Dans mon appli j'ai un model avec une vingtaine de champs tous obligatoire.
>
> Je souhaite réaliser un formulaire pour permettre aux visiteurs de
> renseigner ce model. Cependant un certain nombre de champs seront soit
> pré-remplis soit modifiés après la fonction save().
>
>
>
> Note : il y a de forte chance pour que je soit obligé de customiser la
> visu du formulaire de A à Z. J'entends par là que je ne pense pas utiliser
> simplement la balise {{ mon_formulaire }}
>
>
>
> Pour faire tout ceci j'ai plusieurs solutions :
>
>
>
> Solution 1°)
>
> Dans la classe ModelForm je défini uniquement les champs dont j'ai besoin.
> J'affiche les champs voulus comme bon me semble. Je récupère le formulaire
> rempli via save(commit=False), je mets à jours les champs manquant, je
> relance la fonction save().
>
>
>
> Solution 2°)
>
> J'importe tous les champs (fields = __all__). J'affiche les champs voulus
> comme bon me semble. Je récupère et modifie comme précédemment.
>
>
>
> Solution 3°)
>
> J'importe tous les champs et pré-rempli ceux pour lesquels les
> utilisateurs n'auront pas la main. J'affiche les champs voulus comme bon me
> semble, je récupère avec la fonction save().
>
>
>
>
>
> Je pense que les trois solutions se valent... du moins de mon point de vue
> de débutant en Django... mais les plus expérimentés auront peut-être un
> autre avis ?
>
>
>
>
>
> D'avance merci pour vos conseils.
>
>
>
>
>
>
>
> Charlie
>
>
> _______________________________________________
> django mailing 
> [email protected]http://lists.afpy.org/mailman/listinfo/django
>
>
>
> _______________________________________________
> django mailing list
> [email protected]
> http://lists.afpy.org/mailman/listinfo/django
>
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à