Django管理-如何在模型名称前放置图标

Django管理-如何在模型名称前放置图标,django,django-models,django-admin,Django,Django Models,Django Admin,我使用的是Django 1.6,我想修改管理员,使其在每个模型名称的起始位置显示一个图标(在管理员的索引页上) 问题是我无法更改模板(据我所知),因为我正在创建一个第三方可安装的应用程序,而当用户安装它时,他们可能已经有了自己的样式,并为他们的管理页面进行了自定义。(纠正我,我错了) 到目前为止,我已尝试在models.py中执行此操作,但它仍在管理页面上转义HTML: from django.db import models from django.utils.safestring impor

我使用的是Django 1.6,我想修改管理员,使其在每个模型名称的起始位置显示一个图标(在管理员的索引页上)

问题是我无法更改模板(据我所知),因为我正在创建一个第三方可安装的应用程序,而当用户安装它时,他们可能已经有了自己的样式,并为他们的管理页面进行了自定义。(纠正我,我错了)

到目前为止,我已尝试在models.py中执行此操作,但它仍在管理页面上转义HTML:

from django.db import models
from django.utils.safestring import mark_safe

class DataConnection(models.Model):
    class Meta:
        verbose_name_plural = mark_safe("<img src="..." />My Model")
    ...
来自django.db导入模型的

从django.utils.safestring导入标记_safe
类数据连接(models.Model):
类元:
详细名称复数=标记安全(“我的模型”)
...

这似乎有效。我会使用修改过的版本对admin.site.index和admin.site.app_index方法进行修补,这些版本会抓取响应对象并添加所需的HTML并将其标记为安全:

def index(self, *args, **kwargs):
    response = admin.site.__class__.index(self, *args, **kwargs)
    my_app_context = [d for d in response.context_data['app_list'] if d.get('app_label','') == u'my_app_name']
    if my_app_context:
        for m in my_app_context[0]['models']:
            m['name'] = mark_safe(("<img src='...' /> " + unicode(m['name']))
    return response
admin.site.index = index.__get__(admin.site, admin.site.__class__)

#...Do something similar for the admin.site.app_index method
def索引(self,*args,**kwargs):
响应=管理员站点类索引(self、*args、**kwargs)
my_app_context=[d代表响应中的d.context_数据['app_list']如果d.get('app_标签','')==u'my_app_名称']
如果我的应用程序上下文:
对于我的应用程序上下文[0]['models']中的m:
m['name']=mark_safe(“”+unicode(m['name']))
返回响应
admin.site.index=index.\uuuuu get\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
#…对admin.site.app\u索引方法执行类似操作