2013-11-10 42 views
2

有沒有辦法來定義SHORT_DESCRIPTION在作爲的ModelAdmin調用現場 - 有時人願意提供列名,內部加了額外的動態信息。Django管理SHORT_DESCRIPTION如可贖回

還是有什麼醜陋的黑客是完成同樣的目標是什麼?

回答

2

據我知道/記得特性只能在新的樣式類定義,類定義。所以,你的ModelAdmin領域必須解決與所需性質的可調用對象。這個片段看起來對我來說,它應該允許:

https://djangosnippets.org/snippets/2447/

領域本身成爲解析爲VotesToday類的一個實例,該實例short_description也是性質的性質。儘管自djangosnippet的發佈很多事情都變了 -

+0

你的答案包含正確的指針,儘管該djangosnippet的代碼是不正確的,至少Django的1.5。 – qdot

0

彼得DeGlopper的答案提供所需的方向。

這確實是工作:

class MyAdmin(admin.ModelAdmin): 
    list_display = ('my_callable') 

    class MyCallable: 
     def __call__(self, obj): 
      return 42 

     @property 
     def __name__(self): 
      return 'Galaxy' 

    @property 
    def my_callable(self): 
     if not hasattr(self, __my_callable): 
      self.__my_callable = self.MyCallable() 
     return self__my_callable 

重要的是,該MyAdmin對象不傳遞到MyCallable.__call__()通話 - 如果你需要訪問它,通過它在__init__初始化自己。