2011-01-17 6 views
0

Je crée un formulaire pour permettre aux utilisateurs de modifier leur galerie de photos. Donc, quand je montre le formulaire j'ai besoin de 2 champs/widget par photo.Django: Mettre plusieurs widgets/champs dans un seul champ

Pour chaque photo il y aura un
CheckBox(label='Delete photo', value=<Id of photo>) et un RadioSelect(label='Set as cover image', value=<Id of photo>)

Dans la classe de formulaire Je suppose que je devrais mettre quelque chose comme ça dans le __init__:

for image in images: 
    #make a checkbox widget 
    #make a radio select 
    #store the url of the image 
    self.fields[..] = gallery_field_widget 

Je préférerais mettre autant de code dans la classe de formulaire au lieu du modèle. J'ai joué avec le widget MultpleSelect mais je n'arrive pas à comprendre comment le parcourir avec le reste des widgets .. et aider à ça?

Répondre

4

Ce ne sont pas deux widgets par champ, il s'agit de deux champs par formulaire et d'un formulaire par instance. Pour cela nous avons formsets.

+0

Okey. De plus, comment puis-je attacher tous ces formset à un ModelForm? J'ai un modèle d'un modèle 'projet'. La galerie est une clé étrangère à ce projet. – mrmclovin

+0

Voir [Formats en ligne] (http://docs.djangoproject.com/fr/1.2/topics/forms/modelforms/#inline-formsets) –

Questions connexes