Added validation for countries, added patch method for profile page, code improvements and small fixes
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user