Added validation for countries, added patch method for profile page, code improvements and small fixes

This commit is contained in:
ITQ
2024-03-02 12:32:01 +03:00
parent 720e6319fe
commit 84b245ecf2
8 changed files with 115 additions and 99 deletions
+13 -5
View File
@@ -1,4 +1,5 @@
from django.db.models import Q
from django.conf import settings
from rest_framework.exceptions import ValidationError
from rest_framework.generics import ListAPIView, RetrieveAPIView
from countries.models import Country
@@ -13,10 +14,17 @@ class CountryListView(ListAPIView):
regions = self.request.query_params.get("region")
if regions:
regions_list = regions.split(",")
query = Q()
for region in regions_list:
query |= Q(region=region)
queryset = queryset.filter(query)
invalid_regions = [
region
for region in regions_list
if region not in settings.REGIONS
]
if invalid_regions:
invalid_regions_str = ", ".join(invalid_regions)
error_message = f"Invalid region(s): {invalid_regions_str}"
raise ValidationError(error_message)
queryset = queryset.filter(region__in=regions_list)
return queryset