2017-01-23 3 views
0

Я использую GET с tastypie, чтобы отфильтровать результаты и заказывать результаты по дате, но tastypie жалуется, что поле не позволяет упорядочивать.В Django с Tastypie не удается получить order_by для работы с отношением

Django version: 1.10.2 
Tastypie version: 0.13.3 

Пример URL:

localhost:8000/foos/api/foos/?format=json?order_by=bars__insp_date 

Пример Tastypie Ресурсы:

class BarResource(ModelResource): 

    class Meta: 
     queryset = Bar.objects.all().distinct() 
     resource_name = 'bars' 
     filtering = { 
      'insp_date': ALL_WITH_RELATIONS, 
     } 
     allowed_methods = ['get'] 
     ordering = ['insp_date'] 


class FooResource(ModelResource): 

    onlinereports = fields.ToManyField(
     BarResource, 
     'bars', 
     null=True, 
     full=True, 
    ) 

    class Meta: 
     queryset = Foo.objects.all().distinct() 
     resource_name = 'foos' 
     filtering = { 
      'bars': ALL_WITH_RELATIONS, 
     } 
     ordering = ['bars'] 

Ответ:

{ 
error: "The 'bars' field does not allow ordering." 
} 
+1

Вы пытались добавить '' bars__insp_date'' в список заказов FooResource? – makaveli

+0

@ makaveli Это сработало. Спасибо! – Twitch

ответ

2

Как я уже говорил в комментариях, вы должны добавить поле имя в отношении модели, ресурс ты используешь. Поэтому, если вы хотите заказать FooModel по полю BarModel, связь должна быть указана как 'bar__field'.

Смежные вопросы