django-rest-framework - 为什么 `pk=None` 在 `detail_route` 的 DRF 文档中?它是否必须默认为无?

标签 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 )?

最佳答案

这主要是风格问题。由于 Django url 解析方法是在正则表达式中使用命名组时将关键字参数传递给 View ,并且考虑到 DRF 使用命名组,因此我们倾向于使用关键字“样式”表示法。

关于django-rest-framework - 为什么 `pk=None` 在 `detail_route` 的 DRF 文档中?它是否必须默认为无?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43701707/

相关文章:

python - 强制转换为 Unicode : need string or buffer, int found - Django Rest Framework

python - 你能优化这段代码吗? ( Django , python )

Django Rest Framework,使嵌套关系超链接

python - 从 Django Rest 框架序列化器中查找模型名称

在 AWS Elasticbeanstalk 上部署后出现 django-oauth-toolkit 'invalid client' 错误

python - Django QuerySet .count() 为 0 并且 .exists() 为 false,即使 QuerySet 中有一个对象(Django Rest Framework)

python - Django 框架 : Object does not display on web page for specific pk

django-rest-framework - 如何在 Django REST 中使用路由器不是用于 View 集,而是用于通用 View ?

Django Rest Framework - 在 APITestCase 中加载装置?

python - 如何在基于 Django websockets 的实时聊天机器人中向 PostgreSQL 添加数据?