このSQLのDjangoORMのベストプラクティスはありますか?
REPLACE app_model SET field_1 = 'some val', field_2 = 'some val';
仮定:field_1またはfield_2には一意のキーがあります(または私の場合は両方にあります)。そうでない場合、これは常にINSERTに評価されます。
編集:
今の私の最高の個人的な答えはこれですが、1つが可能であるはずの2〜3のクエリです:
from django.core.exceptions import ValidationError
try:
Model(field_1='some val',field_2='some val').validate_unique()
Model(field_1='some val',field_2='some val',extra_field='some val').save()
except ValidationError:
Model.objects.filter(field_1='some val',field_2='some val').update(extra_field='some val')