当前位置:  开发笔记 > 编程语言 > 正文

Django Admin应用程序还是我自己的?

如何解决《DjangoAdmin应用程序还是我自己的?》经验,为你挑选了3个好方法。

我刚刚开始使用Django进行个人项目.

使用内置管理应用程序与将我的管理功能集成到应用程序本身(通过检查request.user.is_staff)有什么优缺点?

这是一个社区维基,因为它可以被视为民意调查.



1> Ryszard Szop..:

出于多种原因,我会使用Django的管理员应用程序.首先,编写一个管理应用程序可能非常棘手,如果你想做正确的话需要一些时间,并且django.contrib.admin是免费的,并且开箱即用.其次,它设计得非常好,非常适合(即使是非技术用户).第三,它涵盖了很多常见案例,在你真的确定不能这样做之前,浪费时间重写它似乎并不明智.第四,定制并不是那么困难.例如,添加akismet mark-as-spam和mark-as-ham按钮确实是件小事.



2> Koen Bok..:

这真的取决于我猜的项目.虽然您可以在管理员中执行所有操作,但当您的应用程序变得更复杂时,使用管理员也会变得更加复杂.如果你想让你的应用程序真的很容易管理,你需要控制每一个细节,这对管理员应用来说是不可能的.

我猜你应该这样看:

使用django admin:节省写入时间,浪费时间使用它.
滚动自己的管理员:浪费时间编写它,节省使用它的时间.


-1:没有理由浪费时间滚动自己的替代品,直到你知道它值得花时间.
-1:这不是一个简单的权衡.您需要的内容的80%是内置的.不到20%需要手工构建.

3> Andy Baker..:

在不同程度上有选择地覆盖部分管理员是如此容易.

您可以:

    按应用程序或甚至逐个模型覆盖应用程序上的管理模板.

    通过继承和子类化覆盖管理视图

    通过在urls.py中将它们放在它之前来捕获管理员URL,并提供基于管理员外观的自己的界面

......还有更多.

因此,从管理员开始,然后插入您需要的任何自定义功能.

有很多应用程序可以与管理员做出聪明的事情.例如:

django-reversion接管管理日志并将其扩展到完整的历史记录.

Tusk CMS以简洁的方式将django-mptt应用程序与JQuery嵌套的可排序小部件相结合.

同时搜索django-snippets以获取管理员相关的片段,此页面有丰富的信息.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有