Heim  >  Artikel  >  Backend-Entwicklung  >  Fehler in Djangos gleichzeitigen Update- und save()-Funktionen

Fehler in Djangos gleichzeitigen Update- und save()-Funktionen

高洛峰
高洛峰Original
2016-11-22 14:55:161578Durchsuche

save() Standardmäßig sehen Sie nach dem Speichern, dass alle Felder in der SQL-Anweisung aktualisiert wurden und der Wert des Speicherns der Feldwert ist, als er zuvor abgerufen wurde. Es wird zwischengespeichert und ist nicht unbedingt der neueste . Möglicherweise wurde es an anderer Stelle im Prozess aktualisiert

UPDATE `pxb_sx2_test` SET `user_id` = 335, `catalog_id` = 12558, `level_id` = 4, `level_status` = 0, `position` = 440, `type` = 2, `add_time` = '2016-09-14 17:44:07', `update_time` = '2016-09-14 17:53:17.077520' WHERE `pxb_sx2_test`.`id` = 175;

Update aktualisiert das angegebene Feld

UPDATE `pxb_sx2_test` SET `position` = 441 WHERE `pxb_sx2_test`.`id` = 1751;

Wenn die beiden gleichzeitig oder an verschiedenen Orten verwendet werden, aber sie Möglicherweise wird gleichzeitig aktualisiert. Es besteht die Möglichkeit einer Aktualisierung, der Wert in der Datenbank ändert sich jedoch nicht. Tatsächlich wurde nach der Aktualisierung der veraltete Feldwert gespeichert, sodass es den Anschein hatte, als wäre er nicht aktualisiert worden. Nach Django 1.5 kann save Parameter hinzufügen, um nur bestimmte Felder zu aktualisieren. Referenz

 test.position = 441
 test.save(update_fields=['position'])


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn