Django: champ exclusif

Fermé
makayabou Messages postés 12 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 16 juin 2011 - Modifié par makayabou le 16/06/2011 à 17:38
 zouzou_0 - 14 sept. 2011 à 11:32
Bonjour,

Pour une petite application de gestion d'un stock de pièces de vélo,
j'ai crée un formulaire de saisie.
La classe est définie comme suit:
class Pieces(models.Model): 
 TYPE_ROUES_CHOICES =  ( 
       ('roue_ar_24', 'roue arrière de 24 pouces'), 
       ('roue_av_24', 'roue avant de 24 pouces'), 
       ('roue_ar_26', 'roue arrière de 26 pouces'), 
       ('roue_av_26', 'roue avant de 26 pouces'), 
       ('roue_ar_20', 'roue arrière de 20 pouces'), 
       ('roue_av_20', 'roue avant de 20 pouces'), 
       ('pneu_vtt_20', 'pneu pour VTT de 20 pouces'), 
       ('pneu_vtt_24', 'pneu pour VTT de 24 pouces'), 
       ('pneu_vtt_26', 'pneu pour VTT de 26 pouces'), 
       ('pneu_ville_20', 'pneu pour vélo de ville de 20 pouces'), 
       ('pneu_ville_24', 'pneu pour vélo de ville de 24 pouces'), 
       ('pneu_ville_26', 'pneu pour vélo de ville de 26 pouces'), 
       ('pneu_course_20', 'pneu pour vélo de course de 20 pouces'), 
       ('pneu_course_24', 'pneu pour vélo de course de 24 pouces'), 
       ('pneu_course_26', 'pneu pour vélo de course de 26 pouces'), 
       ('jante_vtt_20', 'jante pour VTT de 20 pouces'), 
       ('jante_vtt_24', 'jante pour VTT de 24 pouces'), 
       ('jante_vtt_26', 'jante pour VTT de 26 pouces'), 
       ('jante_ville_20', 'jante pour vélo de ville de 20 pouces'), 
       ('jante_ville_24', 'jante pour vélo de ville de 24 pouces'), 
       ('jante_ville_26', 'jante pour vélo de ville de 26 pouces'), 
       ('jante_course_20', 'jante pour vélo de course de 20 pouces'), 
       ('jante_course_24', 'jante pour vélo de course de 24 pouces'), 
       ('jante_course_26', 'jante pour vélo de course de 26 pouces'), 
       ) 
 type_roues = models.CharField(max_length=15, choices=TYPE_ROUES_CHOICES, blank=True) 
 TYPE_ECLAIRAGE_CHOICES =( 
       ('ecalairage_av', 'éclairage avant'), 
       ('reflecteur_ar', 'réflecteur arrière'), 
       ('reflecteur_lateral_pedale', 'réflecteur latéral pour les pédales'), 
       ('reflecteur_lateral_roues', 'réflecteur latéral pour les roues'), 
       ('dynamo', 'dynamo'), 
       ) 
 type_eclairage = models.CharField(max_length=25, choices=TYPE_ECLAIRAGE_CHOICES, blank=True) 
 TYPE_FREINAGE_CHOICES = ( 
       ('Cable_frein_av', 'câble de frein avant'), 
       ('Cable_frein_ar', 'câble de frein arrière'), 
       ('Tampon_frein', 'tampon de frein'), 
       ('frein_av', 'sabot de frein avant'), 
       ('frein_ar', 'sabot de frein arrière'), 
       ('frein_av_complet', 'frein avant complet cad sabot+tampon'), 
       ('frein_ar_complet', 'frein arrière complet cad sabot+tampon'), 
       ('manette_frein', 'manette de frein'), 
       ) 
 type_freinage = models.CharField(max_length=16, choices=TYPE_FREINAGE_CHOICES, blank=True) 
 TYPE_VITESSES_CHOICES = ( 
       ('Derailleur_pignons', 'dérailleur de pignons'), 
       ('Derailleur_plateaux', 'dérailleur de plateaux'), 
       ('Cable_vitesse_pignons', 'câble de vitesse pour pignons'), 
       ('Cable_vitesse_plateaux', 'câble de vitesse pour plateaux'), 
       ('poignee_tourn_6_pignons', 'poignée tournante pour 6 pignons'), 
       ('poignee_tourn_7_pignons', 'poignée tournante pour 7 pignons'), 
       ('poignee_tourn_2_plateaux', 'poignée tournante pour 2 plateaux'), 
       ('poignee_tourn_3_plateaux', 'poignée tournante pour 3 plateaux'), 
       ('manettes_6_pignons', 'manettes pour 6 pignons'), 
       ('manettes_7_pignons', 'manettes pour 7 pignons'), 
       ('manettes_2_plateaux', 'manettes pour 2 plateaux'), 
       ('manettes_3_plateaux', 'manettes pour 3 plateaux'), 
       ) 
 type_vitesses = models.CharField(max_length=24, choices=TYPE_VITESSES_CHOICES, blank=True) 
 TYPE_PEDALIER_CHOICES =  ( 
        ('Manivelle', 'manivelle de pédale'), 
        ('Pedale', 'Pédale'), 
        ('pedalier_complet', 'Pédalier complet'), 
        ) 
 type_pedalier = models.CharField(max_length=16, choices=TYPE_PEDALIER_CHOICES, blank=True) 
 TYPE_AUTRES_CHOICES =  ( 
       ('selle','selle'), 
       ('poignee','poignée'), 
       ) 
 type_autres = models.CharField(max_length=7, choices=TYPE_AUTRES_CHOICES, blank=True) 


Ainsi, je voudrais, que si on choisit une valeur dans le champ type_pedalier, les autres champs (type_roue, type_vitesse...) ne puissent pas être remplis. Il faudra pour cela ajouter un nouvel enregistrement.
Comment m'y prendre?

Merci

1 réponse

Bonjour,

Pour ce cas on doit faire du java script pour Django ca sera bien d'utiliser dajaxice.
je tombe dans ton même cas je trouve du mal à le faire.
Je ne sais pas si tu as trouvé la solution??
si oui merci de poster des nouvelles.

Merci
0