Как в 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 шт):

Автор решения: Andrew Holovko

Как правильно вставить [user.id] вместо 1?

Используйте f-string.

cursor.execute(f"UPDATE main_table SET members=members||', '|| {fly.id} WHERE id = %s"

→ Ссылка