Consegui a solução.
Eu tive que desabilitar os Triggers na mesa para parar a verificação de restrição de chave estrangeira.
Desativar acionadores
def disable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')
Ativar acionadores
def enable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')
Observações importantes :
-
De acordo com este link do documento , você pode passar uma lista como segundo argumento para oexecute()
(por exemplo:você pode querer passar o nome da tabela dinamicamente), mas isso irá automaticamente escapar das variáveis e você pode acabar formando uma consulta PostgreSQL sintaticamente errada (que levou muito do meu tempo para corrigi-lo)
-
Certifique-se de ligar os gatilhos corretamente
-
Se você estiver recebendo um erro de permissão negada Então você pode querer verificar as permissões de usuário do banco de dados, acabei de ativar as permissões de superusuário do PgAdmin, o que foi bom para mim. e tudo de volta ao trabalho. Como fazer?