Django REST API Запрос, возвращающий 2 значения
Я новичок, изучающий Django с помощью wagtail. У меня есть пользовательская модель API, в которой мне нужно сделать 2 запроса. Я попытался вернуть 2 запроса одновременно с помощью этого кода
def get_queryset(self):
return super().get_queryset().order_by('-first_published_at'), super().filter_queryset('story_type=Story')
и я получаю ошибку атрибута 'str' object has no attribute 'model'
Вот мой api.py
class ProdPagesAPIViewSet(BaseAPIViewSet):
renderer_classes = [JSONRenderer]
filter_backends = [FieldsFilter,
ChildOfFilter,
AncestorOfFilter,
DescendantOfFilter,
OrderingFilter,
TranslationOfFilter,
LocaleFilter,
SearchFilter,]
meta_fields = ["type","seo_title","search_description","first_published_at"]
body_fields = ["id","type","seo_title","search_description","first_published_at","title"]
listing_default_fields = ["type","seo_title","search_description","first_published_at","id","title","alternative_title","news_slug","blog_image","video_thumbnail","categories","blog_authors","excerpt","content","content2","tags","story_type"]
nested_default_fields = []
def get_queryset(self):
return super().get_queryset().order_by('-first_published_at'), super().filter_queryset('story_type=Story')
name = "stories"
model = AddStory
api_router.register_endpoint("stories", ProdPagesAPIViewSet)
При использовании order_by
я получаю сначала самые новые опубликованные истории, но я также хочу отфильтровать story_type=Story
. Если я запрашиваю это с помощью URL, то все работает нормально, как ?story_type=Story
Вот ответ API с запросом order_by
{
"id": 5,
"meta": {
"type": "blog.AddStory",
"seo_title": "",
"search_description": "",
"first_published_at": "2022-09-19T23:27:12.895017Z"
},
"title": "Test Story",
"alternative_title": "Alternative Heading",
"blog_image": {
"id": 1,
"meta": {
"type": "wagtailimages.Image",
"detail_url": "http://localhost/api/v2/images/1/",
"download_url": "/127.0.0.1/media/original_images/tiktok_U4POKiL.jpeg"
},
"title": "tiktok"
},
"excerpt": "Test Excerpt",
"content": "<div class=\"block-full_richtext\"><p data-block-key=\"h053a\"> Test Story </p></div>",
"tags": [
"Test"
],
"news_slug": "eea1awauwc",
"story_type": "Story"
}
Я хочу фильтровать story_type=Story
& order_by('-first_published_at')
одновременно, Как я могу это сделать?
Большое спасибо за прочтение.
def get_queryset(self):
return super().get_queryset().filter('story_type=Story').order_by('-first_published_at')