diff options
| -rw-r--r-- | pydis_site/apps/api/serializers.py | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py index 98d58e97..a36bf72f 100644 --- a/pydis_site/apps/api/serializers.py +++ b/pydis_site/apps/api/serializers.py @@ -1,5 +1,6 @@  """Converters from Django models to data interchange formats and back."""  from django.db.models.query import QuerySet +from django.db.utils import IntegrityError  from rest_framework.exceptions import NotFound  from rest_framework.serializers import (      IntegerField, @@ -320,6 +321,13 @@ class UserSerializer(ModelSerializer):          depth = 1          list_serializer_class = UserListSerializer +    def create(self, validated_data: dict) -> User: +        """Override create method to catch IntegrityError.""" +        try: +            return super().create(validated_data) +        except IntegrityError: +            raise ValidationError({"ID": "User with ID already present."}) +  class NominationSerializer(ModelSerializer):      """A class providing (de-)serialization of `Nomination` instances."""  |