我没有使用Django太长时间,但我即将开始一个非常大的项目。我总是在大型项目中使用相当新的框架(对我来说是新手)而感到紧张,因为我之前已被烧毁过。但是,我对Django非常有信心......这最终将成为让我从我自己的PHP框架跳到流行的Python框架的项目。 (耶!)
无论如何,我的问题是内置的Django管理员是否足够强大,可以用于完全成熟的面向客户的界面(客户端将自己使用它,而不是我)。我看到它是可定制的,但我想知道是否可扩展到足以处理各种非标准情况。我还没有任何具体的例子,因为我还没有开始。
有没有人使用Django管理员为非程序员用户使用的一些非常自定义的界面?它值得吗?您是否愿意专门为该网站创建一个本土管理界面?
只是澄清一下,用户完全是非技术性的。
答案 0 :(得分:4)
如果我理解正确,您希望为所有用户使用django admin,让他们更新网站。
如果这是真的,我认为你可能以与其主要目的不同的方式使用它,因为你可以从Django book获得(强调是我的):
对于某类网站,一个 管理界面是必不可少的部分 的基础设施。这是一个 基于Web的界面,仅限于 受信任的站点管理员,那 启用添加,编辑和 删除网站内容。
如果您的用户需要更新内容(例如,添加新文章),那么可能没问题。
但是如果你想将它用于任何网站互动,那么我认为用户体验不会那么好。
我认为一个非常好的例子,说明如何使用管理员,以及何时不应该使用管理员在ReviewBoard:在那里,大多数用户操作都是由站点直接处理的,只有配置和然后使用管理员处理管理。
最后,这是可用性的问题。如果您认为应用程序可以使用不同的部分来管理网站的添加,那么Django的管理站点可能会节省大量时间。在所有其他情况下,也许最好再投入一些时间。
答案 1 :(得分:3)
我的公司在Django之上构建了一个CMS来处理大量任务(平面页面,博客,仅限会员的部分,从youtube和flickr等外部网站导入和解析数据,邮件列表,专辑歌曲和艺术家的歌词,等等到目前为止我们仍在使用内置管理员。我们有几个非技术客户经常使用它。
当你真正进入它时,你可以使用admin.py文件自定义它。我们添加的唯一内容是tinyMCE和Filebrowser,以便最终用户更轻松地使用这些方面。
我会说我们正在开发一个 需要自定义管理员的图库模块。否则,我对Django管理员的灵活性和强大程度感到非常高兴和印象深刻。它就像你能想到的那样用户友好。
答案 2 :(得分:2)
这取决于。管理员可以让您自定义,不同的用户组可以访问不同的表,如果您授予他们访问不同管理界面的权限,您甚至可以为他们提供表上可用的不同列集。但是,管理员并未真正设置为允许您根据授权级别限制用户的行级访问权限。一旦你让他们进入一个表,他们就可以对他们可用的任何对象进行更改。
您可以通过子类化窗口小部件类型来自定义窗口小部件(尽管内置的filter_horizontal和raw_id_admin是必不可少的,并且使某些数据类型的任务变得简单!)
所以我想这取决于客户的意思。如果你的意思是雇用你的人写网站(我想我称之为客户而不是客户),那么管理员很有可能适合你。如果你的意思是网站的最终用户,我会坚持使用手工制作的django表格。
答案 3 :(得分:2)
通常我将Django管理员视为执行插入删除和编辑的繁琐任务的界面。所以,我不害怕在很大程度上定制它(即使这意味着继承内部Django对象并在运行时将它们传递回管理界面),但要注意它将要求你阅读Django源码(幸运的是它很难做到。
对我来说,使用与否的鉴别因素是“插入,删除,更新”概念,这些概念很好地映射到数据库表,而不是用户技术知识的数量,我信任用户的数量或项目规模。