2012-07-23 54 views
0
我有兩個模型和一個自定義的經理

通過_set選項訪問自定義的經理在Django

class ActiveModelAManager(models.Manager): 
    def get_query_set(self): 
     return super(ActiveModelAManager,self).get_query_set().filter(active = True) 

class ModelA(models.Model): 
    name = CharField(....) 
    active = BooleanField() 

    active_models = ActiveModelAManager() 
    objects = models.Manager() 

class ModelB(models.Model): 
    modelA = ForeignKey(ModelA) 
在我看來,我傳遞MODELA的模板,我想訪問ModelB_set但使用我的active_models

經理而不是對象?

所以,如果我這樣做:

{{ ModelB.modelb_set.all }} 

我訪問對象管理器,但我想要訪問的active_models。 當我嘗試通過我的視圖訪問自定義管理器時,也出現同樣的問題。

任何想法我怎麼能做到這一點?

+0

難道我的回答可以幫助您? – 2012-07-24 21:51:11

+0

爲了所有活躍的StackOverflow用戶,如果您得到可行的解決方案,請將答案標記爲已接受,以便人們不必花費時間回答問題,如果不再需要答案。 – 2012-08-01 06:50:00

回答

1

不知道我的問題是否正確,但爲了查詢引用活動ModelA對象的modelB對象,在您的視圖中只需編寫。

active_modelA_objects = ModelA.active_models.all().values_list('pk', flat=True) 
modelB_objects_with_active_modelA = ModelB.objects.filter(modelA__in=active_modelA_objects) 

相關文檔:

values-list

__in

相關問題