Django管理应用还是我自己的?

2024-03-29 12:09:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始用Django做个人项目。

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

这是一个社区wiki,因为它可以被视为一个投票。


Tags: 项目django功能应用程序isrequestwiki投票
3条回答

我会使用Django的管理应用程序,原因有很多。首先,编写一个管理应用程序可能非常棘手,如果你想做得好,需要花一些时间,而且django.contrib.admin是免费的,而且是开箱即用的。第二,它的设计非常好,而且非常好用(即使是非技术用户)。第三,它涵盖了很多常见的情况,在你确定你不能做其他事情之前,浪费时间重写它似乎并不明智。第四,定制并不难。例如,添加akismet标记为垃圾邮件和标记为火腿纽扣真是小菜一碟。

很容易在不同程度上选择性地覆盖部分管理。

你可以:

  1. 在应用程序基础上覆盖管理模板,甚至在模型基础上覆盖管理模板。

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

  3. 通过在url.py中把您的url放在前面来捕获管理url,并提供基于管理外观的您自己的界面

……还有更多。

所以从管理员开始,然后在需要的地方插入任何自定义功能。

有很多应用程序可以和管理员一起做一些聪明的事情。例如:

  • django-reversion接管 管理日志并将其扩展为完整的 历史。
  • Tusk CMS将 JQuery嵌套的django mptt应用程序 整洁的可排序小部件。

还可以在django代码片段中搜索与管理相关的代码片段,this page获得了大量信息。

我想这真的取决于项目。虽然你可以在管理中做任何事情,但当你的应用变得更复杂时,使用管理也变得更复杂。如果你想让你的应用程序真正容易管理,你想控制每一个小细节,这是不可能的管理应用程序。

我想你应该这样看:

使用django admin:节省编写时间,减少使用时间。
滚动你自己的管理:浪费时间写它,节省时间使用它。

相关问题 更多 >