Geo*_*gie 5 python django django-admin
我只是想知道如何在 django 的管理命令中管理事务。承诺保存?致力于成功?我在官方文档中找不到相关信息。
除非您告诉它们,否则管理命令操作不会包含在事务中。
您可以通过将output_transaction属性设置为 True来告诉handle()方法包装在事务中。从文档:
BaseCommand.output_transaction
一个布尔值,指示命令是否输出 SQL 语句;如果为 True,输出将自动用 BEGIN 包装;和承诺;。默认值为假。
为了获得更多控制权,您始终可以自己发起交易:
...
def handle(self, *args, **options):
with transaction.atomic():
do_your_stuff()
Run Code Online (Sandbox Code Playgroud)
moh*_*666 -1
我不太确定,但管理表单除非满足 clean() 要求,否则不会到达提交点。在那之后我想一切都会被承诺。对于管理中的默认表单来说,此行为应该足够了。但是,对于更复杂的表单,您可以创建自定义管理表单,并且我很确定您可以定义是否要在成功时提交或在保存时提交。
| 归档时间: |
|
| 查看次数: |
1503 次 |
| 最近记录: |