Gibt es eine Django ORM beste Praxis für diese SQL:Django Äquivalent von SQL REPLACE
REPLACE app_model SET field_1 = 'some val', field_2 = 'some val';
Annahme: field_1 oder field_2 würde einen eindeutigen Schlüssel auf sie haben (oder in meinem Fall auf beide), sonst würde dies immer zu einem INSERT auswerten.
Edit:
Meine beste jetzt persönliche Antwort ist, aber es ist 2-3 Abfragen, wobei 1 möglich sein sollte:
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()' gibt ein Tupel '(Objekt, erstellt)'. Ich habe den gleichen Fehler schon Dutzende Male gemacht. Diese Funktion sollte wirklich umbenannt werden in 'get_a_tuple_or_create()' – est
Guter Fang, @est. Fest. – eternicode