ホームページ > バックエンド開発 > Python チュートリアル > Django の update 関数と save() 関数を同時に実行するバグ

Django の update 関数と save() 関数を同時に実行するバグ

高洛峰
リリース: 2016-11-22 14:55:16
オリジナル
1603 人が閲覧しました

save() デフォルトでは、sql ステートメント内のすべてのフィールドが更新されていることがわかります。これは、以前に取得されたときのフィールド値であり、最新ではない可能性があります。プロセスの他の場所で更新されました

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 は指定されたフィールドを更新します

UPDATE `pxb_sx2_test` SET `position` = 441 WHERE `pxb_sx2_test`.`id` = 1751;
ログイン後にコピー

両方が同時に使用されている場合、または異なる場所で使用されている場合でも、同時に更新される可能性があり、更新される可能性があります。ただし、データベース内の値は変わりません。実は更新後、たまたま古いフィールド値が保存されていたため、更新されていなかったようです。 Django 1.5 以降では、save でパラメーターを追加して、指定されたフィールドのみを更新できるようになりました。参考

rreee


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート