diff --git a/arkindex/training/serializers.py b/arkindex/training/serializers.py index ee6d05196f3d79bcd8fd48eac6a0a9579c9b4f18..9c4e357380ea0cc72a65c11cf61f1d7af03b90a8 100644 --- a/arkindex/training/serializers.py +++ b/arkindex/training/serializers.py @@ -714,7 +714,18 @@ class DatasetElementSerializer(serializers.ModelSerializer): def validate(self, data): data = super().validate(data) - data.pop("dataset") + dataset = data.pop("dataset") + if dataset.unique_elements and ( + set := ( + dataset.sets + .filter(set_elements__element_id=data["element_id"]) + .values_list("name", flat=True) + .first() + ) + ): + raise ValidationError({"element_id": [ + f"The dataset prevent duplication and this element is already present in set {set}." + ]}) return data