Разбрах решението.
Трябваше да деактивирам тригерите на таблицата, за да спра проверката на ограничението на външния ключ.
Деактивиране на тригерите
def disable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')
Активиране на задействания
def enable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')
Важни бележки :
-
Според тази връзка към документ , можете да подадете списък като втори аргумент на
execute()
метод (напр.:може да искате да предадете името на таблицата динамично), но това автоматично ще избяга от променливите и в крайна сметка може да формирате синтактично грешна заявка за PostgreSQL (което отне много време да го поправя) -
Уверете се, че сте включили отново тригерите правилно
-
Ако получавате грешка Отказано разрешение Тогава може да искате да проверите потребителските разрешения на DB, току-що включих разрешенията за суперпотребител от PgAdmin, което беше добре за мен. и всичко обратно на работа. Как да го направя?