Mypy с django: Определение внешнего ключа для переопределения в дочернем классе

У меня есть абстрактный базовый класс и 2 дочерних класса. Я хочу определить метод create_product на базовом классе, но mypy выдает ошибку, справедливо говоря, что я не определил product на базовом классе.

Как мне правильно это сделать? Я представляю, что я должен объявить своего рода пустое поле в классе Base, но я не могу найти никакой документации по этому поводу.

Ошибка:

error: Unexpected attribute "product" for model "Base"  [misc]

Код:

class Base(Model):
    identifier = CharField()

    class Meta:
        abstract = True

    @classmethod
    def create_product(
        cls,
        *,
        identifier=identifier,
        product=product
    ):
        return cls.objects.create(
            identifier=identifier,
            product=product  # Error here
        )

class ChildA(Base):
    product = models.OneToOneField(...)

class ChildB(Base):
    product = models.OneToOneField(...)

Обратите внимание, что я использую библиотеки django-stubs и django-stubs-ext

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