在 Django-Rest-Framework 中,我如何使所有请求(GET 除外)都具有事务性?
In Django-Rest-Framework how can I make all requests, except GET, transactional?
根据 Django 的 documentation,我可以设置 ATOMIC_REQUESTS
使所有请求成为原子请求。它还指出我可以在 "per-View" 的基础上有选择地关闭它,而不是 "per-View-function"。
但尚不清楚 GET
方法是否也是事务性的。我知道 REST 定义 considers 此方法为 safe
和 idempotent
,因此它不应该是事务性的。特别是当您考虑多个 GET
请求不必要地使数据库超载时。
最后,我们使用 ListCreateView
然后我们不能使整个视图成为非事务性的,而且我们不能创建一个单独的视图只是为了列表,因为这会损害我们的 URLs 模式。
很遗憾,这是不可能的。
根据 Django 的 documentation,我可以设置 ATOMIC_REQUESTS
使所有请求成为原子请求。它还指出我可以在 "per-View" 的基础上有选择地关闭它,而不是 "per-View-function"。
但尚不清楚 GET
方法是否也是事务性的。我知道 REST 定义 considers 此方法为 safe
和 idempotent
,因此它不应该是事务性的。特别是当您考虑多个 GET
请求不必要地使数据库超载时。
最后,我们使用 ListCreateView
然后我们不能使整个视图成为非事务性的,而且我们不能创建一个单独的视图只是为了列表,因为这会损害我们的 URLs 模式。
很遗憾,这是不可能的。