diff --git a/core/apps/dashboard/serializers/district.py b/core/apps/dashboard/serializers/district.py index 19ab558..ebf8510 100644 --- a/core/apps/dashboard/serializers/district.py +++ b/core/apps/dashboard/serializers/district.py @@ -36,6 +36,8 @@ class DistrictCreateSerializer(serializers.Serializer): if not user: raise serializers.ValidationError({"user_id": "Foydalanuvchi topilmadi"}) data['user'] = user + if District.objects.filter(name=data['name'], user=user).exists(): + raise serializers.ValidationError({'name': "District qo'shib bolmadi"}) return data def create(self, validated_data): diff --git a/core/apps/shared/migrations/0018_alter_district_unique_together.py b/core/apps/shared/migrations/0018_alter_district_unique_together.py new file mode 100644 index 0000000..d1a56c2 --- /dev/null +++ b/core/apps/shared/migrations/0018_alter_district_unique_together.py @@ -0,0 +1,19 @@ +# Generated by Django 5.2 on 2025-12-11 13:15 + +from django.conf import settings +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('shared', '0017_alter_support_district'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='district', + unique_together={('user', 'name')}, + ), + ] diff --git a/core/apps/shared/models/district.py b/core/apps/shared/models/district.py index 5e0fdab..8a08742 100644 --- a/core/apps/shared/models/district.py +++ b/core/apps/shared/models/district.py @@ -14,3 +14,6 @@ class District(BaseModel): def __str__(self): return self.name + + class Meta: + unique_together = ('user', 'name') \ No newline at end of file diff --git a/core/apps/shared/views/district.py b/core/apps/shared/views/district.py index cddcb4f..ca09d40 100644 --- a/core/apps/shared/views/district.py +++ b/core/apps/shared/views/district.py @@ -53,6 +53,9 @@ class DistrictCreateApiView(generics.CreateAPIView, ResponseMixin): serializer = self.serializer_class(data=request.data) if serializer.is_valid(): name = serializer.validated_data.get('name') + if District.objects.filter(name=name, user=request.user).exists(): + return self.failure_response(message="District qo'shib bolmadi") + obj = District.objects.create(name=name, user=request.user) return self.success_response( data=district_serializers.DistrictSerializer(obj).data,