Kann mir jemand helfen, das update_field
Argument für Django Signale zu verstehen?Django Signale: mit update_field als Bedingung
update_fields: Die Menge der Felder explizit in den save() Methode angegeben zu aktualisieren. Keine, wenn dieses Argument beim Aufruf save() nicht verwendet wurde.
Ich bin mir nicht klar, was das bedeutet. Ich habe versucht, es zu verwenden, um eine Signalfunktion zu verhindern, dass die Ausführung, wenn bestimmte Felder aktualisiert wurden:
@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*
Allerdings scheint es, dass es noch während eines weiteren Signalverarbeitung ausführt, wenn ein Objekt gespeichert wird, auch wenn ein nicht näher bezeichneter Bereich ist explizit aktualisiert:
x = SalesRecord.objects.filter(paid_off=False, customer=instance.customer).first()
x.paid_off = True
x.save(update_fields=['paid_off'])
Gehe ich falsch?
, die den Trick tat! Vielen Dank! –
"update_fields" ist eine Django-Syntax für modifizierte Felder oder benutzerdefinierte? – thatzprem
@thatzprem Gemäß der Dokumentation ist es die Django-Syntax für die zu aktualisierenden Felder (https://docs.djangoproject.com/en/1.8/ref/signals/#post-save). – gpichot