我需要从第三方应用程序(django-oscar
)继承模型。
如果我这样做
from oscar.apps.catalogue.models import Category
class NewCategory(Category):
@property
def product_count(self):
return self.product_set.all().count()
class Meta:
db_table = 'catalogue_category'
Django会认为它是一个多表继承,NewCategory
是Category
的子模型。这将导致错误,例如
OperationalError at /api/categories/
no such column: catalogue_category.category_ptr_id
我可以逃脱这个
def product_count(self):
return self.product_set.all().count()
Category.product_count = product_count
但这看起来不太好,而且我无法以这种方式添加@property
装饰器。
有更简洁的方法吗?