2016-03-30 6 views
0

私がアーカイブしようとしているのは、登録されているすべてのモデルがリストされているデフォルトの管理ビューページで、カウントに関するようなモデルに関する動的情報を持っています。私は同じように、非常にハック方法で、今それを行う管理サイトのモデル概要のDjango動的名の値

class x(object): 
    def __unicode__(self, *args, **kwargs): 
     return u"Items (%i items)" % SteamItem.objects.count() 
class Item(models.Model) 
    ... 
    class Meta: 
     verbose_name_plural = x() 

は、管理テンプレートを編集することなく、よりよい方法で同じことを行う方法はありますか?
管理テンプレートの編集が唯一の方法であれば、検索を開始するためのヒントがあります。

答えて

1

私は、残念ながらモデルクラスがテンプレートコンテキストに渡されていないことを知りました。オブジェクトカウントを簡単に照会できません。どのようなすべてのモデルのためのテンプレートに渡されることは次のとおりです。

{{ model_class.objects.count }} 
を:

model_dict = { 
    'name': capfirst(model._meta.verbose_name_plural), 
    'object_name': model._meta.object_name, 
    'perms': perms, 
} 

あなたは何ができるかを使用して、デフォルト・インデックス・テンプレートおよびテンプレート内だけでクエリをオーバーライドし、モデルクラス自体を含めるようにAdminSite._build_app_dictをオーバーライドしています

デフォルトのテンプレートはadmin/index.htmlですが、上記のクラスでわかるように、管理サイトごとに設定することができます。

関連する問題