Ik heb de oplossing.
Ik moest de triggers op de tafel uitschakelen om de beperking van de externe sleutel te stoppen.
Triggers uitschakelen
def disable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')
Triggers inschakelen
def enable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')
Belangrijke opmerkingen :
-
Volgens deze doc-link , kunt u een lijst als het tweede argument doorgeven aan de
execute()
methode (bijvoorbeeld:u wilt misschien de tabelnaam dynamisch doorgeven), maar dit zal automatisch ontsnappen aan de variabelen en u zou kunnen eindigen met het vormen van een syntactisch verkeerde PostgreSQL-query (wat veel van mijn tijd kostte om het te repareren) -
Zorg ervoor dat u de triggers weer correct inschakelt
-
Als u een Toestemming geweigerd-foutmelding . krijgt Dan wil je misschien de DB-gebruikersrechten controleren, ik heb zojuist de superuser-rechten van PgAdmin ingeschakeld, wat goed was voor mij. en alles weer aan het werk. Hoe moet ik dit doen?