Как применить упорядочивание на основе данных поля другой модели в DRF?

Я пытаюсь разработать API для фильтрации JobApplication данных модели, и столкнулся с проблемой упорядочивания данных ответа для пользовательского поля.

Вот моя JobApplication модель.

class JobApplication(models.Model):
    job_post = models.ForeignKey(JobPost, on_delete=models.CASCADE)
    job_seeker = models.ForeignKey(AppUser, on_delete=models.CASCADE)
    applied_date = models.DateField(auto_now_add=True)
    experience = models.PositiveSmallIntegerField(null=True, blank=True)

И модели фильтров:

class JobApplicationFilter(django_filters.FilterSet):
    gender = django_filters.CharFilter(field_name='job_seeker__personaldetails__gender')    
    age = django_filters.NumberFilter(field_name='job_seeker__personaldetails__age', lookup_expr='lte')
    experience = django_filters.NumberFilter(field_name='experience', lookup_expr='lte')

    class Meta:
        model = JobApplication 
    fields = ['gender', 'age', 'experience']
   

А виды:

class JobApplicantFilterListView(generics.ListAPIView):
   
    serializer_class = JobApplicationSerializer
    filter_backends = [DjangoFilterBackend, OrderingFilter]
    filterset_class = JobApplicationFilter
    pagination_class = CustomPageNumberPagination
    ordering_fields = ['age','experience']

Теперь я хочу добавить файл full_name в класс JobApplicationFilter, где поле full_name будет генерироваться из полей first_name и last_name из модели PersonaDetails. И, наконец, используйте это поле full_name для упорядочивания результата. Я использовал annotate, но не работает [возможно, я что-то упустил].

Вернуться на верх