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

What does create_list refer to in Tastypie's custom authorisation?

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

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

我真的很难理解每一种方法的语义。它们与 HTTP 动词(GET、POST、PUT、PATCH、DELETE...等)的对应关系如何?

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

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

但是 "create" 案例...

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

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

那么 create_list 到底是什么意思呢? create_detailcreate_list 有何不同?

感谢您的澄清!

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


*_list 与 *_detail:

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

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

示例:

read_list - 过滤对象,用户将在 网站上看到。com/api/v1/cool_object/

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


将 CRUD 映射到 HTTP(Tastypie):

创建 - POST

阅读 - 获取

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

删除 - 删除


为什么 create_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.
    """