2014-02-24 43 views
2

我用django-model-utils爲它的InheritanceManager類,讓我的父模型Activity的查詢集也從他們的子像SportsParty返回信息等Django的模型utils的:使用InheritanceManager自定義查詢集

不過,現在我想創建一個自定義查詢來默認添加一些過濾器,並且我無法讓它繼續爲InheritanceManager工作。由於繼承管理器已經替換了我的模型的默認管理器,因此我無法按照Django's docs所述製作自定義管理器。

僅從InheritanceManager繼承自定義管理器不起作用。任何其他想法?

回答

1

當然,你可以,只是定義自己的自定義管理器類,從InheritanceManager繼承,像這樣:

from model_utils.managers import InheritanceManager 

class CustomInheritanceManager(InheritanceManager): 
    def get_queryset(self): 
     # your custom queryset here ... 

class YourModel(models.Model): 
    objects = CustomInheritanceManager() 
+1

我可以發誓,我已經試過這種精確解(即使使用'get_queryset',而不是'get_query_set '),但那不起作用。現在確實如此,非常感謝! – jvannistelrooy

+0

我習慣使用自定義管理器來默認進行一些註釋,但是這會使模型的保存功能搞亂,因爲註釋的值在保存時被視爲合法的數據庫列。所以我的代碼畢竟沒有工作。太糟糕了。 – jvannistelrooy