這裏的交易:如何爲Django相關對象集實現通用接口?
我有兩個db模型,比如說ShoppingCart
和Order
。遵循DRY原則,我想將一些常用道具/方法提取到共享接口ItemContainer
。
一切都很順利,直到我遇到_flush()
方法,主要對相關對象集執行刪除操作。
class Order(models.Model, interface.ItemContainer):
# ...
def _flush(self):
# ...
self.orderitem_set.all().delete()
所以,問題是:我怎麼知道動態wheter是orderitem_set
或shoppingcartitem_set
?
實際上,你可以做多重繼承這樣的,它的工作原理沒有問題(只要我可以告訴),但我仍然會可能是從模型繼承ItemContainer (除非它的一個接口t帽子可以適用於非模型對象)。 – 2009-02-05 17:28:44