Django AdminSite - 难以实施还是简单实施?

时间:2010-11-24 20:12:40

标签: python django django-admin

有没有人实施过自己的AdminSite?基本实现有多容易/多难?

我正在建造一个“cms”,在某些地区会变得非常庞大且相当复杂,我想知道使用像AdminSite这样的东西会节省一些时间。我宁愿不必为管理操作和内联等制作自己的实现(我知道我可以使用内联表单,但这并不像inlines = [Foo]那么简单。)

使用自定义AdminSite时,是否进一步定制相当于自定义标准Django管理员?

3 个答案:

答案 0 :(得分:2)

您已阅读admin site文档。这是一个冗长的文档,但添加自定义功能的两个主要方法是通过自己的AdminSiteModelAdmin对象中的自定义网址和修改后的标准视图。一旦你将它们挂钩并且url被映射,它就像构建任何其他Django应用程序一样,只是模板不是你的,所以它们有点难以管理并且习惯了。但它允许您进行其他体操,例如向管理网站添加form wizard或将所有内容拆分为多个表单并在模板中的单个HTML form元素中呈现它们,并对{{进行自定义处理1}} / GET请求等

我过去曾使用它来创建显示自定义报告的视图,并为员工创建自定义编辑方案。我的意见是你应该尽可能地吻。管理站点是关于通用视图和通用演示文稿的。请进行扩展,但如果覆盖模板块并在覆盖未包含在块中的内容之前请三思而后,请务必进行扩展。某些管理站点功能有一定的表示假设,Django附带的JS客户端应用程序也做了一些(这是我在使用动态内联模型的时候所想的那样),所以如果你做的话,那将是一项很大的事情。喜欢滚动一个完全不同的演示文稿。

答案无论如何都是肯定的!管理站点将为您提供更多以交互方式管理模型数据的功能。我不知道你需要多大程度地定制管理员,但有CMS,专用的管理应用程序和管理集成的应用程序,真是令人大开眼界。正如我记得的那样,Django CMS被认为是最好的开源Django CMS,从我可以看到它推出了自己的cust更改/列表视图。 Rosetta是一款仅限管理网站的应用,可让您以交互方式编辑翻译文件,并拥有详尽的管理界面!如果你在bitbucket和github上购物,你会发现更多的例子,它应该可以帮助你找出你需要付出多少努力。

答案 1 :(得分:0)

<强>两个

如果你没关系,那就不能完全按照你想要的那样自动完成它。如果你需要对某些事情进行细粒度控制,那么在不知道管理代码内部的情况下很难定制。

答案 2 :(得分:0)

django管理员更像是一种适合所有类型的ui,在某些情况下可能不太直观。 定制它的外观很容易,但扩展它有些困难。在这种情况下,你最好设计自己的观点。