580 uuid resolving 4xx error #581

Merged
mpeltriaux merged 2 commits from 580_UUID_resolving_4xx_error into master 2026-09-12 15:40:30 +02:00
2 changed files with 49 additions and 46 deletions
+11 -8
View File
@@ -11,7 +11,7 @@ from abc import abstractmethod
from django.contrib.gis import geos from django.contrib.gis import geos
from django.contrib.gis.geos import GEOSGeometry from django.contrib.gis.geos import GEOSGeometry
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.core.paginator import Paginator from django.core.paginator import Paginator
from django.db.models import Q from django.db.models import Q
@@ -102,13 +102,16 @@ class AbstractModelAPISerializer:
Returns: Returns:
serialized_data (dict) serialized_data (dict)
""" """
entries = self.model.objects.filter( try:
**self.lookup entries = self.model.objects.filter(
).filter( **self.lookup
self.shared_lookup ).filter(
).order_by( self.shared_lookup
"id" ).order_by(
).distinct() "id"
).distinct()
except ValidationError:
raise AssertionError("ID expected to be of UUID4 for internal lookup.")
self.paginator = Paginator(entries, self.rpp) self.paginator = Paginator(entries, self.rpp)
requested_entries = self.paginator.page(self.page_number) requested_entries = self.paginator.page(self.page_number)
+38 -38
View File
@@ -1,65 +1,65 @@
amqp==5.3.1 amqp==5.3.1
asgiref==3.11.1 asgiref==3.12.1
async-timeout==5.0.1 async-timeout==5.0.1
beautifulsoup4==4.14.3 beautifulsoup4==4.15.0
billiard==4.2.4 billiard==4.2.4
cached-property==2.0.1 cached-property==2.0.1
celery==5.6.3 celery==5.6.3
certifi==2026.4.22 certifi==2026.7.22
cffi==2.0.0 cffi==2.1.1
chardet==7.4.3 chardet==7.6.0
charset-normalizer==3.4.7 charset-normalizer==3.5.1
click==8.3.3 click==8.5.0
click-didyoumean==0.3.1 click-didyoumean==0.3.1
click-plugins==1.1.1.2 click-plugins==1.1.1.2
click-repl==0.3.0 click-repl==0.3.0
coverage==7.13.5 coverage==7.16.0
cryptography==48.0.0 cryptography==50.0.1
Deprecated==1.3.1 Deprecated==1.3.1
Django==6.0.5 Django==6.1.1
django-autocomplete-light==4.0.0 django-autocomplete-light==5.0.0
django-bootstrap-modal-forms==3.0.5 django-bootstrap-modal-forms==3.0.5
django-bootstrap4==26.1 django-bootstrap4==26.2
django-environ==0.13.0 django-environ==0.14.0
django-filter==25.2 django-filter==26.1
django-fontawesome-5==1.0.18 django-fontawesome-5==1.0.18
django-oauth-toolkit==3.2.0 django-oauth-toolkit==3.4.1
django-tables2==3.0.0 django-tables2==3.0.1
et_xmlfile==2.0.0 et_xmlfile==2.0.0
gunicorn==26.0.0 gunicorn==26.2.0
idna==3.13 idna==3.19
importlib_metadata==9.0.0 importlib_metadata==9.0.1
itsdangerous==2.2.0 itsdangerous==2.2.0
jwcrypto==1.5.7 jwcrypto==1.6.0
kombu==5.6.2 kombu==5.6.2
oauthlib==3.3.1 oauthlib==3.3.1
openpyxl==3.2.0b1 openpyxl==3.2.0b1
packaging==26.2 packaging==26.3
pika==1.4.0 pika==1.4.4
pillow==12.2.0 pillow==12.3.0
prompt_toolkit==3.0.52 prompt_toolkit==3.0.53
psycopg==3.3.4 psycopg==3.3.5
psycopg-binary==3.3.4 psycopg-binary==3.3.5
pycparser==3.0 pycparser==3.0
pyparsing==3.3.2 pyparsing==3.3.2
pypng==0.20220715.0 pypng==0.20220715.0
pyproj==3.7.2 pyproj==3.8.0
python-dateutil==2.9.0.post0 python-dateutil==2.9.0.post0
pytz==2026.2 pytz==2026.3
PyYAML==6.0.3 PyYAML==6.0.3
qrcode==8.2 qrcode==8.2
redis==7.4.0 redis==8.1.0
requests==2.33.1 requests==2.34.2
six==1.17.0 six==1.17.0
soupsieve==2.8.3 soupsieve==2.9.2
sqlparse==0.5.5 sqlparse==0.6.0
typing_extensions==4.15.0 typing_extensions==4.16.0
tzdata==2026.2 tzdata==2026.4
tzlocal==5.3.1 tzlocal==5.4.4
urllib3==2.7.0 urllib3==2.7.0
vine==5.1.0 vine==5.1.0
wcwidth==0.7.0 wcwidth==0.8.3
webservices==0.7 webservices==0.7
wrapt==2.1.2 wrapt==2.4.1
xmltodict==1.0.4 xmltodict==1.0.4
zipp==3.23.1 zipp==4.1.0