首页  >  文章  >  web前端  >  直接修改 base.css 是在 Django Admin 中覆盖 CSS 的最佳方式吗?

直接修改 base.css 是在 Django Admin 中覆盖 CSS 的最佳方式吗?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-04 09:15:30333浏览

Is Direct Modification of base.css the Optimal Way to Override CSS in Django Admin?

在 Django Admin 中覆盖 CSS:直接修改是最好的方法吗?

在 Django 管理界面中修改 CSS 可以增强外观和用户体验经验。然而,问题出现了:直接编辑 Django 库中的 base.css 文件是最有效的方法吗?

CSS 定制的替代解决方案

还有更合适的在 Django Admin 中覆盖 CSS 并保持基本代码完整性的方法:

1.覆盖管理模板

对于一般外观更改,覆盖 Django 的管理模板是推荐的方法。扩展原来的管理模板并修改特定块,例如base.html中的extrastyle块。有关模板覆盖的详细指导,请参阅 Django 文档。

示例:

{% extends "django/contrib/admin/templates/admin/base.html" %}
{% block extrastyle %}
    <style>
        /* Custom CSS code here */
    </style>
{% endblock %}

2.通过媒体元类进行自定义

对于特定于某些模型的样式,admin.py 文件中的媒体元类允许您添加自定义 CSS 和 JavaScript:

示例:

<code class="python">class MyModelAdmin(admin.ModelAdmin):
    class Media:
        js = ('js/admin/my_own_admin.js',)
        css = {
            'all': ('css/admin/my_own_admin.css',)
        }</code>

替代方法的优点:

  • 可维护性:覆盖模板或使用 Media 元类可确保自定义 CSS代码与核心 Django 代码库隔离,使维护更容易。
  • 灵活性:这些方法在自定义管理界面中特定部分或模型的外观方面提供了更大的灵活性。
  • 协作:从事同一项目的团队成员可以轻松识别和修改自定义 CSS,而不必担心无意中影响基本 Django 代码。

结论

虽然直接修改 Django 的 base.css 文件可能很诱人,但覆盖管理模板或使用媒体元类是自定义 Django 管理界面外观的更谨慎和可持续的方法。这些方法提高了代码的可维护性、增加了灵活性并促进了协作。

以上是直接修改 base.css 是在 Django Admin 中覆盖 CSS 的最佳方式吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn