我正在使用Django-carton(https://github.com/lazybird/django-carton),我想知道是否可以将多个模型关联为产品模型。
现在,我有一个基类产品,我注册为我的产品型号,并从中继承了 Pub 和 Restaurant 。我面临的问题是,cart.show()
基本上返回购物车中的所有产品对象,这些产品对象只有产品属性,而不是Pub或Restaurant,我无法区分哪一个是Pub,哪一个是Pub是餐厅。
答案 0 :(得分:1)
在基础模型中,您可以在没有实现的情况下定义方法get_type
,在继承的类中实现它,例如:
class Product(models.Model):
...
def get_type(self):
pass
class Meta:
...
abstract = True
class Pub(Product):
...
def get_type(self):
return 'pub'
class Restaurant(Product):
...
def get_type(self):
return 'restaurant'
如果您知道实例的类型,则可以轻松访问所需的属性。
或者您只能使用isinstance
内置函数:
if isinstance(obj, Pub):
# Your logic here