为什么`detail_route`的DRF文档中的`pk = None`?是否必须默认为None?

时间:2017-04-30 00:20:27

标签: django-rest-framework

在此处:http://www.django-rest-framework.org/api-guide/routers/#extra-link-and-actions给出的detail_route示例为:

@detail_route(methods=['post'], permission_classes=[IsAdminOrIsSelf])
    def set_password(self, request, pk=None):

pk=None是第三个参数。转到URL users/{pk}/change-password/$时可以访问此路由。我的问题是,是否始终提供pk?为什么默认值为None?不应该只是:

@detail_route(methods=['post'], permission_classes=[IsAdminOrIsSelf])
    def set_password(self, request, pk):

?根据我的理解,用户可以访问此路线的唯一方法是在网址pk中输入users/{pk}/change-password/$值(如果未给出值,则不应使用默认值 - 如果它不是,默认为None)?

1 个答案:

答案 0 :(得分:1)

这主要是风格问题。由于Django url解析方法是在正则表达式中使用命名组时将关键字参数传递给视图,并且假设DRF使用命名组,那么我们倾向于使用关键字" style"符号