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