我想在管理员索引页面上为每个模型添加指定的图标。我在每个模型上添加了一个名为“picture”的属性,然后我修改了/contrib/admin/sites.py将该图片名称传递给模板并检查并在admin的index.html模板上使用它来获取结果。 我想知道是否有更好的方式
class Product(models.Model):
abbr = models.CharField(max_length=20,unique=True)
title = models.CharField(max_length=200,unique=True)
owner = models.ForeignKey(UserProxy)
des = models.TextField(blank=True,null=True)
picture = 'product.png'
def __unicode__(self):
return self.abbr
class Meta:
none
答案 0 :(得分:4)
您所做的似乎没问题,只有一些小技巧可以让您的代码更好一点:
django/contrib/admin/sites.py
您可以继承AdminSite
类(如果您还没有这样做)。AdminSite.index()
方法以传递不是图片,但修改整个管理类(model_admin
方法中有一个index()
变量)。答案 1 :(得分:0)
'Python Fanboy'的回答非常简短但对我有用,我可以避免修改django基类
admin.sites.url
”替换为“custom_site.url
”
(custom_site
是CustomAdminSite
)/admin
”,例如“/my_admin
”所以我必须为我的所有模型使用CustomAdminSite
的实例,即使是User,Group&站点admin_tools
,现在我丢失了应用程序菜单我遇到的新问题有更好的想法或解决方案吗?