2010-08-27 106 views

回答

1

添加自定義方法(說pcount),該方法返回給定Poll實例的選項數。然後,您可以將其添加到ModelAdmin子類中的list_display屬性中。

class Poll(models.Model): 
    ... 
    def pcount(self): 
     return self.choice_set.count() 


class PollAdmin(admin.ModelAdmin): 
    list_display = (<other fields>, 'pcount',) 
+0

這將返回(無),即使每個選項有5個選項。 :( – 2010-08-27 16:41:49

+0

我在'pcount'方法中加入了缺少'return'語句,你錯過了嗎? – 2010-08-27 16:42:42

+0

是的 - 我發現了這個。仍然顯示(None)。 – 2010-08-27 17:07:25

3

你並不需要修改模型,來計算列在運行管理中創建的ModelAdmin對象,需要一個第二PARAM的功能,這將是定期輪詢模型實例。除了像在模型中那樣編寫代碼,你可以忽略自己,因爲它沒有你想要的。

class PollAdmin(admin.ModelAdmin) 
    list_display = (<other_fields>, 'choice_count') 

    def choice_count(self, model_instance): 
     return model_instance.choice_set.count() 
+0

它仍然返回(None)...嘆氣... – 2010-08-27 20:15:47

+0

HA!我因爲大小寫而遇到了麻煩,奇怪。 – 2010-08-27 20:57:51

+0

這兩個都應該可以工作。除了可以在'ModelAdmin'上定義它的管理員之外,其他任何地方都可以使用選擇計數,如果您需要在幾個地方提供您希望使用模型方法的選項計數。 – 2010-08-31 00:02:59