Эффективность Django update_or_create

Использует

Model.objects.update_or_create(field1=x, field2=y, defaults=defaults)

медленнее по сравнению со следующим:

qs = Model.objects.filter(field1=x, field2=y)
if qs.exists():
    qs.update(defaults=defautls)
else:
    defaults.update({'field1': x, 'field2': y})
    Model.objects.create(**params)
Вернуться на верх