【发布时间】:2014-09-13 03:50:33
【问题描述】:
我的这个工作比 DRF 2.4 差很多,但是到 2.4+ 的更改使用 @detail_route。
当我对/api/parent/7/children 执行 GET 操作时,我希望得到属于 Parent 7 的所有孩子。
但我得到一个空数组。
这是我的代码:
class ParentViewSet(viewsets.ModelViewSet):
serializer_class = ParentSerializer
model = models.Parent
@detail_route()
def children(self, request, pk):
parent = self.get_object()
children = parent.children.all()
serializer = ChildrenSerializer(children)
return Response(serializer.data)
def get_queryset(self):
if self.request.user.is_superuser:
return models.Parent.objects.all()
else:
return models.Parent.objects.filter(user=self.request.user)
def pre_save(self, obj):
obj.user = self.request.user
当我在 API 查看器中转到端点 /api/parent/7/children 时,我得到的响应是:
{
"detail": "Not found"
}
有什么建议吗?
原则上我更喜欢这个,你可以对正在发生的事情进行更多的陈述。我知道我可以在children 上设置方法,因此我不必为同一资源执行@link 和@action。只需要克服这个障碍。
谢谢!
【问题讨论】:
标签: json django rest django-views django-rest-framework