Ai đó có thể giúp tôi hiểu đối số update_field
cho tín hiệu Django không?Tín hiệu Django: sử dụng update_field làm điều kiện
update_fields: Tập hợp các lĩnh vực để cập nhật một cách rõ ràng theo quy định tại các tiết kiệm() phương pháp. Không có gì nếu đối số này không được sử dụng trong lệnh save().
Tôi không hiểu rõ ý nghĩa của điều này. Tôi đã cố gắng sử dụng nó để ngăn chặn một hàm tín hiệu từ thực hiện trừ một số lĩnh vực đã được cập nhật:
@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*
Tuy nhiên, có vẻ như nó vẫn thực hiện trong suốt một quá trình tín hiệu khi một đối tượng được lưu, thậm chí nếu một lĩnh vực không xác định là được cập nhật rõ ràng:
x = SalesRecord.objects.filter(paid_off=False, customer=instance.customer).first()
x.paid_off = True
x.save(update_fields=['paid_off'])
Tôi có gặp vấn đề này không?
Điều đó đã làm các trick! Cảm ơn rất nhiều! –
"update_fields" là cú pháp django cho các trường được sửa đổi hoặc tùy chỉnh? – thatzprem
@thatzprem Theo tài liệu đó là cú pháp Django cho các trường để cập nhật (https://docs.djangoproject.com/en/1.8/ref/signals/#post-save). – gpichot