Skip to content

Commit 6d03d6c

Browse files
committed
Cast searchable UUID fields to str to allow icontains
1 parent a3de359 commit 6d03d6c

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

api/views.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,12 +239,14 @@ class BaseReportViewSet(
239239
"photos",
240240
queryset=Photo.objects.visible()
241241
)
242+
).annotate(
243+
pk_str=models.functions.Cast('pk', output_field=models.CharField()),
242244
).non_deleted().filter(point__isnull=False).order_by('-server_upload_time')
243245

244246
lookup_url_kwarg = "uuid"
245247

246248
filter_backends = (DjangoFilterBackend, SearchFilter)
247-
search_fields = ("report_id", "pk")
249+
search_fields = ("report_id", "pk_str")
248250

249251
permission_classes = (ReportPermissions,)
250252

@@ -537,11 +539,13 @@ class IdentificationTaskViewSet(RetrieveModelMixin, ListModelMixin, GenericNoMob
537539
"report__photos",
538540
queryset=Photo.objects.visible(),
539541
)
542+
).annotate(
543+
pk_str=models.functions.Cast('pk', output_field=models.CharField()),
540544
)
541545
serializer_class = IdentificationTaskSerializer
542546
filterset_class = IdentificationTaskFilter
543547
filter_backends = (DjangoFilterBackend, SearchFilter)
544-
search_fields = ("report__report_id", "pk")
548+
search_fields = ("report__report_id", "pk_str")
545549
permission_classes = (IdentificationTaskPermissions | UserRolePermission,)
546550

547551
lookup_field = 'pk'
@@ -682,9 +686,14 @@ class AnnotationViewSet(IdentificationTaskNestedAttribute, NestedViewSetMixin, L
682686
report=models.OuterRef('report')
683687
)
684688
)
689+
).annotate(
690+
report_pk_str=models.functions.Cast('report', output_field=models.CharField()),
685691
)
692+
686693
serializer_class = AnnotationSerializer
694+
filter_backends = (DjangoFilterBackend, SearchFilter)
687695
filterset_class = AnnotationFilter
696+
search_fields = ("report__report_id", "report_pk_str")
688697
permission_classes = (AnnotationPermissions | UserRolePermission, )
689698

690699
parent_lookup_kwargs = {

0 commit comments

Comments
 (0)