高度定制的管理员——创建应用程序还是破解源代码?

Highly customized admin - Create an app or hack the source code?

自从我被分配重建我们平台的管理页面的任务以来,我一直面临着 django 的巨大挑战。我开始不知道该做什么,现在我已经做了一半,我更不确定了。

这是我的问题:

如果我想构建一个高度自定义的管理员,我应该对源代码进行大量修改还是创建一个新应用程序?

1) 巨人黑客

这就是我开始并陷入困境的方式。途中出现了几个问题,例如:

  1. 我必须扩展 AdminSite 并覆盖我想更改的每个视图
  2. Django 的管理是非常模块化的(我的意思是,非常非常模块化),一个屏幕可能是大量其他模板的总和
  3. 创建一个简单的导航栏是一件很痛苦的事情(至少对于像我这样的新手来说是这样)。这是因为当其他模板而不是 base.html 被注入时,app_list(包含要在管理员第一页中显示的映射模型的变量)无法访问。因此,我将不得不创建一个上下文处理器,将每个 TemplateResponse() 替换为 render()(从技术上讲,因为我尝试这样做但效果不佳)

问题不断。鉴于我缺乏使用 django 的经验,我可能会做一些废话,但确实感觉我走错了路。

this guy's answer 激励我 post 这个。

2) 构建一个全新的应用程序

当然,实现它需要一些时间,但这似乎是一种稳健且可维护的完成方式。其中一点是,我需要提供与默认管理站点在添加模型时提供的灵活性相同的灵活性,并及时获得他们的 cruds 和表格(我不太确定如何完成此行为)。

我是 django 的新手,非常感谢任何指南。告诉我你如何制作它的想法。

无需覆盖管理视图。最简单的方法是覆盖模板并添加您自己的 css & javascripts。

我添加了自己的导航栏、侧边栏和底部。如果您覆盖管理基础模板,这真的很容易。

如果需要,您可以使用自己的模板标签向模板提供自定义数据。