Как в Django сформировать sql запрос с двумя переменными
Есть функция с запросом, которая апдейтит строку в таблице без перезаписи, принимая 2 параметра: user и fly
def enter_fly(self):
with connection.cursor() as cursor:
cursor.execute("UPDATE main_table SET members=members||', '||1 WHERE id = %s",[fly.id])
Как правильно вставить [user.id] вместо 1?
fly.id работает нормально, в таблице данные добавляются как надо
Возможно есть вариант сделать это через ORM, подскажите как, пробовал что-то типа такого:
Fly.objects.filter(pk=pk).update(members="{}, {}".format(Fly.members, 1))
но опять же, вместо 1 не получается вставить user.id, да и в таблице первым значением массива является <django.db.models.query_utils.DeferredAttribute object at 0x7ff9abd8b3d0> а дальше через запятую то что я передаю
Ответы (1 шт):
Как правильно вставить [user.id] вместо 1?
Используйте f-string.
cursor.execute(f"UPDATE main_table SET members=members||', '|| {fly.id} WHERE id = %s"