Sérialiseur Evenement¶
Module contenant le sérialiseur pour le modèle Evenement.
Ce module définit la sérialisation/désérialisation des données des événements sportifs pour l’API REST, incluant la gestion des relations avec les épreuves et lieux.
- class api.serializers.evenement.EvenementSerializer(*args, **kwargs)¶
Bases :
ModelSerializerSérialiseur pour le modèle Evenement.
Gère la sérialisation des événements avec leurs relations aux épreuves et lieux. Permet l’assignation d’épreuves à un événement tout en évitant les conflits.
- Variables:
epreuves – Liste des épreuves associées (lecture seule)
epreuve_ids – IDs des épreuves à associer (écriture seule)
lieu – Données complètes du lieu (lecture seule)
lieu_id – ID du lieu pour l’écriture
- class Meta¶
Bases :
objectConfiguration du sérialiseur.
- Variables:
model – Modèle Django associé au sérialiseur
fields – Champs inclus dans la sérialisation
- fields = ['id', 'description', 'lieu', 'lieu_id', 'date', 'horraire', 'epreuves', 'epreuve_ids', 'nb_place_total', 'nb_place_restante']¶
- validate_epreuve_ids(value)¶
Valide les IDs des épreuves à associer à l’événement.
Vérifie qu’aucune épreuve n’est déjà assignée à un autre événement pour éviter les conflits d’assignation.
- create(validated_data)¶
Crée un nouvel événement avec ses épreuves associées.
- Paramètres:
validated_data (dict) – Données validées pour la création
- Renvoie:
L’événement créé avec ses épreuves assignées
- Type renvoyé:
- update(instance, validated_data)¶
Met à jour un événement et gère les épreuves associées.
Désassocie les anciennes épreuves et assigne les nouvelles si présentes.
- Renvoie:
L’événement mis à jour
*Fonctionnalités avancées*
Relations optimisées : Affichage complet du lieu et des épreuves
Champs séparés lecture/écriture pour les clés étrangères
Validation des conflits : Évite l’assignation d’épreuves déjà utilisées
Gestion transactionnelle : Mise à jour cohérente des relations
*Validations spéciales*
La méthode validate_epreuve_ids() vérifie qu’aucune épreuve n’est déjà assignée à un autre événement.