如何调整Django Admin的外观?

时间:2011-10-07 05:39:08

标签: django django-admin stylesheet

请帮助我如何在不使用以下代码的模板的情况下自定义文本和字段(长度,宽度,字体,颜色)

 class Record(models.Model):
        Name   = models.CharField(max_length=200,blank=True,null=True,help_text="Employee Name")
        Empid  = models.CharField(max_length=300,blank=True,null=True,help_text="Employee ID")
        Salary = models.IntegerField(blank=True,null=True)
        Bonus  = models.IntegerField(blank=True,null=True)

3 个答案:

答案 0 :(得分:1)

在您的admin.py中:

class RecordAdmin(admin.ModelAdmin):
    # your stuff...

    class Media:
        css = {
            "all": ("my_styles.css",)
        }

Documentation for class Media.

现在,您应该可以在my_styles.css文件中覆盖您想要的内容。

如果你想要一个更通用的解决方案(不仅适用于Record模型,而且适用于许多模型),一个好方法是扩展base_site.html模板,将你自己的CSS文件添加到所有模板管理页面。

{% block blockbots %}
<link rel="stylesheet" type="text/css" href="/media/css/admin_base.css" />
{{ block.super }}
{% endblock %}

我将其放在blockbots而不是extrastyle中,以确保它将在最后,因此它将覆盖所有其他样式表。

Documentation on overriding/extending admin templates.

答案 1 :(得分:0)

无法从模型中修改Django管理员的可视元素。这完全违背了MVC框架的目的!关注点的分离表明这些更改将在模板中完成。

如果要更改文本大小,则必须修改管理员的样式表。

答案 2 :(得分:-1)

也许您需要从模型中创建表单并自定义它们,here是官方文档。

使用widgets自定义HTML属性