[Django]update_or_createで更新する

django

Djangoのupdate_or_createについてのメモ。

update_or_createでは既存のテーブルにデータがあれば更新、なければ新規で追加するものですが使う機会があったので備忘録を兼ねてメモ。

エラーが発生する

ちょっと考えを間違えていたようで、IntegrityErrorが再現しました。

xxx.objects.update_or_create(
  name=name,
  age=age,
  job=job
)

nameをキーにしているつもりでしたが、正しくは以下のような感じで書きます。

xxx.objects.update_or_create(
 # ユニークな値
  name=name,

 # 更新もしくは新規で追加したい値
  defalults={
  "name": name, "age": age  
 }
)

defaluts~と書いた箇所の値が更新されます。



カテゴリー