如何解决django 信号是否在发件人模型的交易中执行
我有一个名为 branch 的模型,在保存分支时我正在使用:
with transaction.atomic():
#previous processing
obj.save()
#additional codes
我创建post_save信号如下:
@receiver(signals.post_save,sender=Branch)
def update_reporter_header(sender,instance,created,**kwargs):
""" When Add or Edit a Branch The related data to branch must be change
Args:
sender ([Branch]): [the model Who kept under eye when any change]
instance ([Branch]): [description]
created ([boolean]): [return true if instance created else False]
"""
if created:
是否需要交易
for obj in HeaderFooter.bobjects.all().filter(branch_id=instance.id,customize=False,is_appeare=True):
obj.data = getattr(instance,obj.name)
obj.save()
解决方法
我在执行后发现任何信号装饰器中都不需要事务,当且仅当在保存或删除时使用事务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。