Fick lösningen.
Jag var tvungen att inaktivera triggers på bordet för att stoppa kontroll av främmande nyckel.
Inaktivera utlösare
def disable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')
Aktivera utlösare
def enable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')
Viktiga anmärkningar :
-
Enligt denna dokumentlänk , kan du skicka en lista som det andra argumentet till
execute()
metod (t.ex.:du kanske vill skicka tabellnamnet dynamiskt), men detta kommer automatiskt att undkomma variablerna och du kan hamna i en syntaktisk felaktig PostgreSQL-fråga (vilket tog mycket av min tid att fixa det) -
Se till att du slår på avtryckarna igen ordentligt
-
Om du får felet Permission nekad Då kanske du vill kolla DB-användarbehörigheterna, jag slog precis på superanvändarbehörigheter från PgAdmin, vilket var ok för mig. och allt tillbaka till jobbet. Hur gör man det?