You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

23 lines
922 B

from rest_framework import viewsets
from .models import AdEvaluation
from .serializers import AdEvaluationSerializer
class AdEvaluationViewSet(viewsets.ReadOnlyModelViewSet):
"""
ViewSet for listing and viewing Ad Evaluations.
Supports filtering by crawl_task (UUID) and is_flagged (boolean).
"""
serializer_class = AdEvaluationSerializer
def get_queryset(self):
queryset = AdEvaluation.objects.all().select_related('ad', 'crawl_task').order_by('-evaluated_at')
crawl_task_id = self.request.query_params.get('crawl_task')
is_flagged = self.request.query_params.get('is_flagged')
if crawl_task_id:
queryset = queryset.filter(crawl_task_id=crawl_task_id)
if is_flagged is not None:
is_flagged_bool = is_flagged.lower() in ('true', '1', 't')
queryset = queryset.filter(is_flagged=is_flagged_bool)
return queryset