Pgtrigger.Q неправильно ссылается на таблицу с внешним ключом

Я пытаюсь реализовать простой pgtrigger.Protect на таблице, который будет выполнять проверку булевого значения в столбце внешнего ключа. Я правильно написал триггер, но когда происходит миграция, столбец внешнего ключа не ссылается должным образом. Нужна помощь.

User Table

from datetime import datetime as DateTime

from django.db.models import (
    BooleanField, CASCADE, CharField, DateField, DateTimeField, EmailField,
    ForeignKey, IntegerField, JSONField, Model, OneToOneField
)
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
import pgtrigger

from flexbox_tv.models.user.util.manager import UserAccountManager



class User(AbstractBaseUser, PermissionsMixin):

    class Meta:
        db_table = "user"
        managed = True
        triggers = [
            pgtrigger.SoftDelete(name = "User_SOFTDELETE", field = "is_active", value = False)
        ]

    id = CharField(
        max_length = 10,
        primary_key = True,
        null = False,
        blank = False,
        unique = True
    )
    account_name = CharField(max_length=50, null=False, blank=False, unique=True)
    dob = DateField(auto_now=False, auto_now_add=False, null=False, blank=False)
    email = EmailField(max_length=50, null=False, blank=False, unique=True)
    password = CharField(max_length=254, null=False, blank=False)
    content_provider = BooleanField(default=False, null=False, blank=False)

    is_staff = BooleanField(default=False, null=False, blank=False)
    is_active = BooleanField(default=False, null=False, blank=False)

    USERNAME_FIELD = "id"
    REQUIRED_FIELDS = ["account_name", "dob", "email", "password"]

    objects = UserAccountManager()

    def __str__(self):
        return self.account_name



class Product(Model):

    class Meta:
        db_table = "product"
        triggers = [
            pgtrigger.SoftDelete(name = "Product_SOFTDELETE", field = "is_active", value = False),
            pgtrigger.Protect(
                name = "Product_PROTECT_insert",
                operation = pgtrigger.Insert | pgtrigger.Update,
                when = pgtrigger.Before,
                condition = pgtrigger.Q(new__id_provider__content_provider = True)
            )
        ]

    id = CharField(
        max_length = 20,
        primary_key = True,
        null = False,
        blank = False,
        unique = True
    )
    id_provider = ForeignKey(User, db_column="id_provider", on_delete=CASCADE)
  .....
  .....
  .....

Migration Error:

LINE 45: FOR EACH ROW WHEN (NEW."content_provider")

В файле миграции его нужно преобразовать в нечто вроде NEW."user"."content_provider". Как я могу создать этот триггер правильно для столбца внешнего ключа? Нужна помощь

Вернуться на верх