Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是Django';s的管理面板是否只是临时脚手架?_Django_Django Admin_Scaffolding - Fatal编程技术网

是Django';s的管理面板是否只是临时脚手架?

是Django';s的管理面板是否只是临时脚手架?,django,django-admin,scaffolding,Django,Django Admin,Scaffolding,我已经成功地为内部用户使用Django的管理面板有一段时间了,但最近我在尝试自定义它时遇到了困难,我很好奇我是否在上面花费了太多时间。所以,我的问题是: Django的管理面板是否只是临时的脚手架,也就是说,仅在应用程序的初始开发期间使用,并由类似于Rails脚手架的自定义代码替换 显然,通过使用管理面板,我可以免费获得许多功能,并且随着新功能的添加,我也可以免费获得这些功能。其他人会做什么?Django Admin只提供默认的添加/更改/删除处理,没有任何价值 数据库中充满了查找表和管理表。例

我已经成功地为内部用户使用Django的管理面板有一段时间了,但最近我在尝试自定义它时遇到了困难,我很好奇我是否在上面花费了太多时间。所以,我的问题是:

Django的管理面板是否只是临时的脚手架,也就是说,仅在应用程序的初始开发期间使用,并由类似于Rails脚手架的自定义代码替换


显然,通过使用管理面板,我可以免费获得许多功能,并且随着新功能的添加,我也可以免费获得这些功能。其他人会做什么?

Django Admin只提供默认的添加/更改/删除处理,没有任何价值

数据库中充满了查找表和管理表。例如,没有最终用户应该看到的邮政编码到状态的映射。后台批处理作业执行的日志

你的应用程序可能会有一些表,这些表或多或少是“管理”的——有人维护它们,但不是大型用户社区

您的应用程序可能会有一些表供最终用户添加/更改/删除。您可能希望为此活动提供广泛的自定义页面

Django是在新闻行业长大的。编写器和编辑器准备数据(使用管理界面)。客户通过定制的网页读取数据

我们有使用管理页面的管理人员。我们为客户定制了页面。我们两者都用


我们为内部管理员提供几乎所有内容的默认管理员页面。我们为客户端管理员提供所选表的默认管理员。我们还为我们的客户提供精心制作的特定于应用程序的页面。

不,您当然可以使用它来管理您的网站,但正如Django所说;仅适用于受信任的用户。因此,如果你创建了一个cms,它是伟大的。因为(希望)后端用户将是可信任的用户

我不会说管理员是临时搭建的,但它可能不是很多情况下的最佳选择。我曾与一家非常大且知名的媒体公司合作,该公司将管理作为其制作人和编辑的整个工作流界面的基础。不幸的是,您关于何时或何时不使用管理的决策过程将从您对Django内部的全面了解中获益匪浅;你可能会被卡住几次,然后才能获得经验,知道什么时候不该被卡住p

管理员的“可定制性”可能有些主观。我看到过团队按照自己的意愿去做,但这也需要对模型、表单(当然还有模型表单和表单集)和模板的底层细节有很好的了解。我认为很多传统智慧和最佳实践还并没有出现在有组织的文档中。准备在源代码中进行大量挖掘。好消息是,您可能会对如何利用框架中的一些一流实体有更深入的了解。坏消息是你的老板可能不会因为你花了一天的时间修改表单上的单个输入而高兴


最近的增强使得在管理员URL空间下放置自己的视图更容易,因此您可能会考虑编写自己的视图以满足您的需求,并在标准管理页面中的适当位置上喷洒链接。我通常建议那些更新到Django的人或者刚进入管理员定制的人,强烈地考虑只使用你自己的管理视图。毕竟,Django已经让创建CRUD风格的应用程序变得非常容易,而且无论何时你想要改变表现或行为,你都不必觉得自己在与僵化的系统作斗争。

不,我不会将其与Rails的脚手架相比较。你的问题不清楚你遇到了什么样的问题,你能举个例子吗

通过添加类,您可以对管理员进行大量定制:隐藏字段、显示其他字段、允许编辑同一页面上的相关项目或限制/过滤外键字段中显示的选项。您还可以通过在首页添加排序、过滤器和搜索字段,让用户更容易查找。较新版本的Django还允许您创建自己的自定义命令,这些命令可以同时应用于多个对象


但是,如果问题不在于基本的更改列表和编辑表单,您可以通过创建特定于模型的模板来完全自定义这些更改列表和编辑表单。大约6个月前,当我刚开始在Django工作时,我问了一个类似的问题

对于那个特定的应用程序,我选择不使用Django admin,事后看来,这是一个非常明智的决定。从那以后,我一般都没有用过它,但有时在某些情况下它会很棒。对我来说,这真的取决于用户。如果我们正在为客户机构建一个定制的数据驱动应用程序,并且正在使用他们提供的功能集,那么我永远都不想使用Django管理员。在这些情况下,几乎可以肯定的是,他们将有可能是一个真正的痛苦,试图在管理工作的变化。如果这是一个不断发展的项目,这些变化将越来越成为一种黑客行为,你可能最终不得不开始将其拆分为网站的非Django管理部分,此时有两个界面可以做这些事情

但是,如果客户端更倾向于接受应用程序的工作方式,那么Django管理员就可以了,假设您的表和他们处理的数据之间通常有1:1的对应关系

正如Brian Luft所说,为CRUD应用程序创建接口非常容易,因此,如果您觉得将来需要任何定制,那么从