¿Hay un ORM de Django mejores prácticas para este SQL:Django equivalente de SQL REPLACE
REPLACE app_model SET field_1 = 'some val', field_2 = 'some val';
Supuesto: field_1 o field_2 tendría una clave única en ellos (o en mi caso en ambos), de lo contrario esto sería siempre evaluar a un INSERTAR.
Editar:
Mi mejor respuesta personal en este momento es este, pero es 2-3, donde 1 consultas debería ser posible:
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')
lol 'get_or_create()' 'devuelve una tupla (objeto, creada)'. Cometí el mismo error docenas de veces antes. Esta función realmente debe cambiarse a 'get_a_tuple_or_create()' – est
Buena captura, @est. Fijo. – eternicode