我需要显式地使用带有Django Rest Framework序列化器更新的事务吗?

2024-05-14 10:49:46 发布

您现在位置:Python中文网/ 问答频道 /正文

根据http://www.django-rest-framework.org/api-guide/serializers/#writable-nested-representations,为了接受嵌套序列化程序,我需要创建一个update方法。这些示例都不使用事务,尽管它们确实修改了多个行/表。DRF是否已经以某种方式在事务中包装了东西,或者应该显式地将transaction.atomic()放在它上面?

相关公关:


Tags: djangoorg程序restapihttp序列化www
3条回答

您还可以使用Django的ATOMIC_REQUESTS数据库设置,该设置将在执行每个请求之前应用事务,并在请求成功完成时提交事务。更多信息请点击此处:

Database transactions - Tying transactions to HTTP requests

首先从数据库导入事务模块,然后使用以下命令

with transtaction.atomic():
    pass

这将确保数据库中数据的原子性和一致性。

相关公关与你的问题无关。PR链接到特定于DRF的异常处理程序,该处理程序绕过了默认的Django事务方案(https://github.com/tomchristie/django-rest-framework/pull/1204#issuecomment-52712621)。

DRF并没有特别地在事务中包装东西,让用户可以自由选择他们想要的任何东西。

相关问题 更多 >

    热门问题