使用django admin创建整个Web应用程序

时间:2009-03-24 11:07:04

标签: django web-applications django-admin

我当时认为django admin是一个实用程序,可以为站点的可信管理员提供对站点数据模型的完全访问权限。

然而,在详细介绍了django admin之后,我了解到它是一组非常强大的视图和模板,可用于创建整个应用程序。

您是否经常使用管理员创建整个应用程序?使用视图本身比仅定制管理员更容易吗?

如何使用admin构建原型。我们甚至需要构建原型吗?管理员自定义无法在实际应用程序中重复使用。

如果我想在实际应用中使用部分管理代码(使用不同的模板),是否有某种脚手架选项可用?

5 个答案:

答案 0 :(得分:18)

“管理员不是您的应用。”

如果自定义超出了微不足道的范围,请编写自己的视图。

根据我的经验,我保持内部管理页面不受影响。相反,我覆盖了管理索引模板,当用户需要进行重要的报告或表单处理时,我将链接放到自定义编写的视图中。

答案 1 :(得分:10)

之前我做过类似的事情。这是一个完全通过扩展Django管理员实现的大学的CMS。原来这是一个糟糕的设计决策。我不得不跳过篮球去做一些事情。

这实际上取决于您的应用程序的要求。如果需要大量的ajax或某些特定的工作流程扩展,管理员将不是正确的事情。但我认为扩展管理员可以涵盖60%的案例。

它也非常适合构建原型。

修改

好的,那是在0.96天。

到目前为止,我已经在新管理员的基础上构建了2个“大”网站。这些主要是案例管理,数据输入和报告,因此可以挤入管理员的工作流程。但是,不是没有花费大量精力来扩展基础站点,ModelAdmin,InlineModelAdmin等。这样做的决定是我们被迫快速做到这一点。但在第一种情况下,它也完全符合要求。两者都在政府部门的内部网上运行。两者都做得很好。一个有200个表处理成千上万的条目。另一个管理付款。

所以,是的,这是真的。管理员不是您的应用。但是,它可以扩展,尽管其中大部分都没有记录。它适用于大多数基本的入门工作流程。所以在有限的场景中值得考虑。

答案 2 :(得分:7)

我不同意其他大多数答案。

简而言之,使用管理员应用程序无法获得免费内容。

您对管理员的第一次定制将很困难,因为您将面临陡峭的学习曲线(您将需要处理覆盖模板,管理器,ModelAdmins,可能使用数据库视图,CSS和JS,一些其他形式和验证规则等...)。但是一旦完成,你就会开始觉得将管理系统弯曲到你需要的状态。我已经构建了一个复杂的库存和会计Web应用程序,其中包含数据输入,报告和权限系统,所有这些都完全基于管理界面和后端。

答案 3 :(得分:3)

Django Admin非常灵活,可以通过多种方式覆盖。不幸的是,有不止一种方法可以覆盖,而且有些技术并没有很好的记录。

好消息是以下策略似乎运作良好: 覆盖,自定义和子类化管理员应用程序,直到它们开始感觉有点痛苦,然后在需要的时候进入你自己的视图。

我对this question

的回答中有一些有用的链接

答案 4 :(得分:0)

简而言之:

根据您的需要试用管理部分。修改标准视图。如果缺少某些东西,您可以随时开发自己的视图。

对我来说,我无法想象仅基于django-admin的整个(大于rolodex)应用程序。

一个。