Django: champ exclusif
makayabou
Messages postés
14
Statut
Membre
-
zouzou_0 -
zouzou_0 -
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:
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
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