python - Tastypie的自定义授权中create_list指的是什么?

标签 python django authorization tastypie

我一直在研究Tastypie API documentation for custom authorisation .

有八种可能的方法可以实现来创建自定义授权类。

  • 读取列表
  • read_detail
  • 创建列表
  • create_detail
  • update_list
  • update_detail
  • 删除列表
  • delete_detail

我真的很难理解这些方法的语义。它们到底如何对应于 HTTP 动词(GET、POST、PUT、PATCH、DELETE...等)?

最初,我认为 *_list 方法可能意味着......

Give me a list of all objects that the user can [create, read, update, delete]

但是“创建”案例...

Give me a list of all objects that the user can create

...确实没有意义,因为对象已经被创建了。为了使我的解释有意义,这必须是用户可以创建的所有可能对象的列表(这显然是不可行的)。

那么 create_list 的实际含义是什么? create_detail 怎么样?它与 create_list 有何不同?

感谢您的澄清!

最佳答案

问题是关于哲学和概念的,实际上有3个问题,但让我尝试简单地回答你的问题。

<小时/>

*_list 与 *_detail:

*_list 方法是用户有权访问的对象的过滤器。

*_detail 方法是 bool 值,告诉我们是否可以访问确切的对象。

示例:

read_list - 过滤用户将在 site.com/api/v1/cool_object/ 上看到的对象

read_detail - 告诉我们是否允许用户查看site.com/api/v1/cool_object/2

<小时/>

将 CRUD 映射到 HTTP (Tastypie):

创建 - 发布

阅读 - 获取

UPDATE - PUT(上传新实体)/PATCH(仅发送更改的字段)

删除 - 删除

<小时/>

为什么创建_list:

添加该方法只是为了统一和一致性。所以你认为它没有实际意义是正确的。

我们甚至可以在 tastypie/authorization.py 中查看它:

def create_list(self, object_list, bundle):
    """
    Unimplemented, as Tastypie never creates entire new lists, but
    present for consistency & possible extension.
    """

关于python - Tastypie的自定义授权中create_list指的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32490360/

相关文章:

Django - 使用中间表对 ManyToMany 字段进行注释

python - 如何在 Django 1.11 中使用 settings_local.py 覆盖 settings.py

iphone - iPhone应用程序何时收到didChangeAuthorization Status : delegate call?

python - flask 和 python 是否存在类似 CanCan(授权库)的东西

http - 如何正确定义使用 cURL 的基本 HTTP 身份验证?

python - 如何在python中制作一个gui

python - Caffe Python API 引用?

python - 无法初始化 Spark 上下文

django - Django Admin 中的 WMD?

python - 自动将字符串转换为正确的数字类型