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

时间:2015-10-17 12:52:59

标签: python django django-admin

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

这是我的问题:

如果我想构建高度自定义的管理员,我应该对源代码进行大规模破解还是创建新的应用程序?

1)巨人黑客

这就是我的开始和卡住的方式。途中出现了一些问题,例如:

  1. 我必须扩展AdminSite并覆盖我想要更改的每个视图
  2. Django的管理员非常模块化(我的意思是非常模块化),屏幕可能是其他模板的总和
  3. 创建一个简单的导航栏是一个痛苦的屁股(至少它是像我这样的新手)。这是因为当注入其他模板而不是base.html时,app_list(包含要在管理员的第一页中显示的映射模型的变量)无法访问。因此,我必须创建一个上下文处理器,将每个TemplateResponse()替换为render()(从技术上讲,因为我试图这样做而且它也不起作用)
  4. 问题一直在继续。鉴于我对django缺乏经验,我可能会做垃圾,但确实感觉我错了。

    this guy's answer激励我发帖。

    2)构建全新的应用

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

    我对django很新,任何准则都会受到高度赞赏。请告诉我你如何制作它的想法。

1 个答案:

答案 0 :(得分:0)

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

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

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