gpt4 book ai didi

django - Django ViewSet中detail参数的含义是什么?

转载 作者:行者123 更新时间:2023-12-03 20:27:44 24 4
gpt4 key购买 nike

我在 Django ViewSet 中创建了一个自定义操作方法,我看到 detail argument .如果我设置 detail=True我不能从 URL 调用这个方法,但是如果我设置了 detail=False ,我可以调用这个方法。我可以知道详细论证的含义是什么吗?

这是我的 View 集 = >

class TimeSheetViewSet(viewsets.ModelViewSet): 
queryset = TimeSheet.objects.all()
serializer_class = TimeSheetSerializer

@action(methods=['get'], detail=True)
def byhello(self, request):
return Response({"From Hello":"Got it"})

这是路由器和 URL 模式 =>
router.register('timesheets_ts', TimeSheetViewSet, base_name='timesheets')

urlpatterns = [
path('api/', include(router.urls))
]

最佳答案

docs州,如果你通过 detail=True这意味着路由器将返回一个对象,而如果你不通过 detail=True或通过 detail=False它将返回一个对象列表。

要记住的一件事是,如果您没有做任何事情或不需要此函数中的单个对象,则可以设置 detail=False
在你的情况下,它会是这样的:

@action(methods=['get'], detail=True)
def byhello(self, request, pk=None):
self.object = self.get_object()
return Response({"From Hello":"Got it"})

关于django - Django ViewSet中detail参数的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57268845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com