Sérialiseur Epreuve

class api.serializers.epreuve.EpreuveSerializer(*args, **kwargs)

Bases : ModelSerializer

Sérialiseur pour le modèle Epreuve.

Gère la sérialisation des épreuves avec leurs relations aux disciplines et événements. Inclut une validation pour éviter les doublons d’épreuves dans une même discipline.

discipline

Données complètes de la discipline (lecture seule)

Type:

DisciplineSerializer

discipline_id

ID de la discipline pour l’écriture

Type:

PrimaryKeyRelatedField

evenement

Données de l’événement associé (lecture seule)

Type:

NestedEvenementSerializer

evenement_id

ID de l’événement pour l’écriture (optionnel)

Type:

PrimaryKeyRelatedField

validate(data)

Valide les données de l’épreuve pour éviter les doublons.

Vérifie qu’aucune épreuve avec le même libellé n’existe déjà pour la même discipline.

Paramètres:

data (dict) – Données à valider

Renvoie:

Données validées

Type renvoyé:

dict

Lève:

serializers.ValidationError – Si une épreuve similaire existe déjà

class Meta

Bases : object

Configuration du sérialiseur.

model

Modèle Django associé au sérialiseur

Type:

Model

fields

Champs inclus dans la sérialisation

Type:

list

model

alias de Epreuve

fields = ['id', 'libelle', 'discipline', 'evenement', 'discipline_id', 'evenement_id', 'genre', 'tour']

*Fonctionnalités*

  • Relations optimisées : Affichage complet de la discipline et de l’événement

  • Validation d’unicité : Évite les doublons d’épreuves par discipline

  • Champs séparés lecture/écriture pour les clés étrangères

  • Assignation optionnelle à un événement

*Validation spéciale*

La méthode validate() vérifie qu’aucune épreuve avec le même libellé n’existe déjà pour la même discipline.