Django Rest Framework Упорядочивание Фильтр по элементу во вложенном списке
Я использую OrderingFilterBackend
из django_elasticsearch_dsl_drf
для упорядочивания результатов для api вызова, я могу упорядочить по полям и вложенным полям.
Теперь я хочу упорядочить по полю в первом элементе вложенного списка.
Итак, для каждого элемента в списке, возвращенном из запроса api get, структура данных выглядит следующим образом:
{
id: 1,
events: [
{
id:2,
name: "test_1"
},
{
id:3,
name: "test_2"
}
]
}
Я хочу заказать по my_list[0].name
.
Мой serializers.py:
class EventSerializers(serializers.ModelSerializer):
id = serializers.UUIDField(read_only=True)
name = serializers.CharField(read_only=True)
class Meta:
model = models.Event
fields = (
'id',
'name',
'created',
'updated'
)
class OrganisationSerializer(WritableNestedModelSerializer):
events = EventSerializers(many=True, required=False)
class Meta:
model = models.Organisation
fields = (
'id',
'events',
'created',
'updated'
)
Мой views.py:
class OrganisationViewSet(SearchWriteNestedViewSet):
model = models.Organisation
serializer_class = OrganisationSerializer
queryset = models.Organisation.objects.all()
document = OrganisationDocument
filter_backends = [
OrderingFilterBackend
]
ordering_fields = {
'id': None,
"events": {
'field': 'events.name',
'path': 'events',
}
}
Я считаю, что место, где я заблудился, находится где-то здесь
ordering_fields = {
'id': None,
"events": {
'field': 'events.name',
'path': 'events',
}
}
я пробовал 'field': 'events.0.name'
, 'field': 'events.[0].name'
и 'field': 'events[0]name'
, я искал ответ, но я не могу найти ничего о том, как упорядочить по определенным элементам в массиве, как это, я могу искать вложенные поля прекрасно и нашел много примеров этого.
также я заметил, что при 'field': 'events.name',
кажется, что он как-то упорядочивает данные, было бы неплохо понять, что именно упорядочивает мой список, но это просто любопытство, моя главная задача - получить список, упорядоченный по первому элементу во вложенном списке.