【发布时间】:2015-10-08 09:31:20
【问题描述】:
有人可以帮我理解 Django 信号的 update_field 参数吗?
update_fields:在 保存()方法。如果在 save() 调用中未使用此参数,则为无。
我不清楚这意味着什么。我试图用它来阻止信号函数执行,除非某些字段被更新:
@receiver(post_save, sender=SalesRecord)
def spawn_SaleSource_record(sender, update_fields, created, instance, **kwargs):
if created or update_fields is 'sale_item' or 'sales_qty':
*do function*
然而,当一个对象被保存时,它似乎仍然在另一个信号过程中执行,即使一个未指定的字段被显式更新:
x = SalesRecord.objects.filter(paid_off=False, customer=instance.customer).first()
x.paid_off = True
x.save(update_fields=['paid_off'])
我是不是搞错了?
【问题讨论】:
标签: python django django-models django-signals