我尝试存档的是在默认管理视图页面上显示有关模型的动态信息,例如计数,其中列出了所有已注册的模型。
我现在以非常强硬的方式做到这一点,比如:
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()
有没有办法以更好的方式做同样的事情,而无需编辑管理模板?
如果编辑管理模板是唯一的方法,我会欣赏一些提示从哪里开始我的搜索。
答案 0 :(得分:1)
反思django admin code我发现不幸的是模型类没有传递给模板上下文 - 所以你不能轻易查询对象数。每个模型传递给模板的内容是:
model_dict = {
'name': capfirst(model._meta.verbose_name_plural),
'object_name': model._meta.object_name,
'perms': perms,
}
您可以做的是覆盖AdminSite._build_app_dict
以包含模型类本身,使用以下方法覆盖模板中的默认索引模板和公正查询:
{{ model_class.objects.count }}
默认模板为admin/index.html
,但可以在每个管理网站的基础上进行配置,如上面提到的类中所示。