Как применить упорядочивание на основе данных поля другой модели в 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
, но не работает [возможно, я что-то упустил].