Django model.save()はUPDATEが優先される

DjangoModel.save()は主キーが重複するときは、INSERTでなくUPDATEになる。

DBへの保存する列の主キーが重複するときの挙動を調べた。 Model.save()は、同値の主キーが存在すると上書きするようだ。

今回は、django.db.utils.IntegrityErrorをraiseしてほしい。

Model instance reference | Django documentation | Django

によると、そういうアルゴリズムになっているとのこと。 対処法は上ページの下方にある通り、

model.save(force_insert=True)

とすれば、django.db.utils.IntegrityErrorをraiseしてくれる。

タイトルとURLをコピーしました