【发布时间】:2016-08-13 19:07:30
【问题描述】:
我有一个端点,我想使用 url kwargs 过滤并返回一个查询集,如下所示:/api/myendpoint/{id}/ 应该返回所有 myendpoint 对象,其字段 X 与 {id} 匹配。我在我的视图类中提供了 get_query_set 方法,它是一个 ReadOnlyModelViewSet,它返回一个包含所有符合条件的对象的查询集(我知道这部分有效,因为我在返回结果之前打印出结果,它看起来是正确的)。
我似乎遇到的问题是 get_queryset 返回的查询集似乎在显示在端点上之前再次被 django 过滤。它被过滤为 pk=={id}。这不是我想要的功能,因为我使用 {id} 来过滤不同的字段。似乎它被视为 DetailView,但我希望它被视为集合视图(如果存在这样的事情)。如何在仍然使用 url kwargs 的同时为此视图返回多个对象?我是 django 初学者,如果这很明显,请见谅。
urls.py:
from rest_framework_nested_import routers
router = routers.DefaultRouter()
router.register(r'', MyView, base_name='myendpoint')
urlpatterns = patterns('',
url(r'^', include(router.urls)))
views.py:
class MyView(viewsets.ReadOnlyModelViewSet):
def get_queryset(self):
if 'pk' in self.kwargs:
return MyObj.objects.filter(field=self.kwargs['pk'])
【问题讨论】:
标签: django django-rest-framework