Использование параметров для необработанного sql-запроса
params = ', '.join([str(x) for x in list(user_domain_ids)])
latest_entries = DNSEntryHistory.objects.raw(SELECT t1.* from dnsapi_dnsentryhistory t1 where t1.date= (SELECT MAX(date) FROM dnsapi_dnsentryhistory t2 where t1.id=t2.id) and history_type='delete' and domain_id IN (%s)",[params])
У меня есть запрос, и я хочу отправить значение, разделенное запятой в моем операторе IN. Этот запрос работает, если переменная жестко закодирована с помощью fstring, но я не хочу получить это решение из-за проблем с SQL Injection.
Когда я печатаю запрос, он показывает -> SELECT t1.* from dnsapi_dnsentryhistory t1 where t1.date= (SELECT MAX(date) FROM dnsapi_dnsentryhistory t2 where t1.id=t2.id) and history_type='delete' and domain_id IN (2544, 1)
что кажется правильным.
Кроме того, когда я использую распечатанный запрос в качестве выполненного, он работает, так что я в замешательстве