2016-11-23 12 views
0

我使用的是Django紙箱(https://github.com/lazybird/django-carton),我想知道是否有可能將多個模型作爲產品模型關聯。Django紙箱與兩個產品型號一起工作

現在,我有一個基類產品我登記我的產品型號和我繼承酒吧餐廳從它。我面臨的問題是,cart.show()基本上會返回購物車中只有產品屬性而不是酒吧或餐廳的所有產品對象,而我無法區分哪個是Pub和哪個是Restaurant。

回答

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