lwi*_*win 4 django django-views django-rest-framework
我在 Django ViewSet 中创建了一个自定义操作方法,我看到了 detail 参数。如果我设置,detail=True我不能从 URL 调用这个方法,但如果我设置detail=False,我可以调用这个方法。我可以知道详细论证的含义是什么吗?
这是我的视图集 = >
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"})
Run Code Online (Sandbox Code Playgroud)
这是路由器和 URL 模式 =>
router.register('timesheets_ts', TimeSheetViewSet, base_name='timesheets')
urlpatterns = [
path('api/', include(router.urls))
]
Run Code Online (Sandbox Code Playgroud)
正如文档所述,如果您通过,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"})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2422 次 |
| 最近记录: |