使用内置的Django管理程序来完成一个相当大的项目值得吗?

使用内置的Django管理程序来完成一个相当大的项目值得吗?,django,django-admin,Django,Django Admin,我使用Django的时间不长,但我即将开始一个相当大的项目。在大型项目中使用相当新的框架(对我来说是新的),我总是很紧张,因为我以前被烧坏过。然而,我对Django非常有信心……这将最终成为一个项目,使我从自己开发的PHP框架跃升到流行的Python框架。(耶!) 无论如何,我的问题是内置的Django管理员是否足够健壮,可以用于一个完全成熟的面向客户的界面(客户将自己使用它,而不是我)。我看到它是非常可定制的,但我想知道它的可扩展性是否足以处理各种非标准情况。我还没有任何具体的例子,因为我还没

我使用Django的时间不长,但我即将开始一个相当大的项目。在大型项目中使用相当新的框架(对我来说是新的),我总是很紧张,因为我以前被烧坏过。然而,我对Django非常有信心……这将最终成为一个项目,使我从自己开发的PHP框架跃升到流行的Python框架。(耶!)

无论如何,我的问题是内置的Django管理员是否足够健壮,可以用于一个完全成熟的面向客户的界面(客户将自己使用它,而不是我)。我看到它是非常可定制的,但我想知道它的可扩展性是否足以处理各种非标准情况。我还没有任何具体的例子,因为我还没有开始

有没有人将Django管理员用于非程序员用户使用的一些非常定制的界面?值得吗?您是否愿意专门为该站点创建一个自制的管理界面


只是澄清一下,用户将完全不懂技术。

我的公司在Django的基础上建立了一个CMS,可以处理许多任务(平面页面、博客、会员专区、从youtube和flickr等外部网站导入和解析数据、邮件列表、专辑歌曲和艺术家歌词等)到目前为止,我们仍然在使用内置的管理员。我们有几个非常非技术性的客户定期使用它

当您真正开始使用admin.py文件时,您可以对其进行定制。我们只添加了tinyMCE和Filebrowser,使最终用户更容易了解这些方面


我要说的是,我们正在工作的画廊模块,将需要一个自定义管理员,虽然。除此之外,我对Django的管理是多么灵活和强大感到非常高兴。而且它的用户友好程度是您所能想到的。

视情况而定。管理员将允许您进行大量定制,不同的用户组可以访问不同的表,如果您允许他们访问不同的管理员界面,您甚至可以为他们提供表上可用的不同列集。但是,管理员并没有真正设置为允许您根据用户的授权级别限制用户的行级别访问。一旦将它们放入表中,它们就可以对任何可用对象进行更改

您可以通过对小部件类型进行子类化来自定义小部件(尽管内置的过滤器\u horizontal和raw\u id\u admin是必不可少的,并且对于某些数据类型,这项任务变得简单!)


所以我想这取决于你所说的顾客。如果你指的是那些雇你来写网站的人(我想我会称他们为客户而不是客户),那么管理员很有可能会很适合你。如果您是指网站的最终用户,我会坚持使用手工制作的django表单。

如果我理解正确,您希望对所有用户使用django管理员,让他们更新网站。
如果这是真的,我想你可能会以不同的方式使用它,而不是它的主要目的,正如你可以从(重点是我的):

对于特定类别的网站 管理界面是一个必不可少的部分 对基础设施的管理。这是一个 基于Web的界面,仅限于 受信任的站点管理员 启用添加、编辑和编辑 删除网站内容

如果您的用户需要更新内容(比如说,添加一篇新文章),那么它可能没问题。
但是如果你想用它进行任何网站交互,那么我认为用户体验就不会那么好了

我认为一个很好的例子说明了如何使用管理员,以及什么时候不应该使用管理员:在那里,大多数用户操作都是由站点直接处理的,只有配置和管理是使用管理员来处理的


最后,这是一个可用性的问题。如果您认为您的应用程序可以有一个不同的部分来管理添加到站点的内容,那么Django的管理站点可能是一个实时的节省器。在所有其他情况下,也许最好多花点时间。

一般来说,我将Django管理员视为执行插入、删除和编辑等繁琐任务的界面。因此,我并不害怕在很大程度上对其进行定制(即使这意味着对内部Django对象进行子类化并在运行时将它们传递回管理接口),但请注意,这将需要您读取Django源代码(幸运的是,这并不难做到)


因此,对我来说,使用与否的判别标准是“插入、删除、更新”与数据库表非常匹配的概念,而不是用户技术知识的数量,我信任用户的数量,或者项目大小。

您认为您在制作一个定制的管理条目时会遇到任何困难,至少看起来像其他的管理条目吗?让它看起来像其他的,不。只是让管理样式表完成它的工作,并确保添加适当的类就可以了。我们更关心的是如何为一些更复杂的部分设计界面,如重新排序和拇指钉。我猜从技术上来说,“客户”将既是客户又是客户……这意味着雇用我的人可能会管理用户,但是用户本身将是非常非技术性的,只能管理某些部分。我刚刚在我的实践网站上尝试了水平过滤器…非常好!好提示!我认为你引用了Django书中的那句话,一针见血。我想我是在考虑把管理员改造成一个它不是专门设计用来做的东西。这很可能会导致今后的麻烦。这是一个很好的思考方式。一旦我设计了网站的工作方式,我就必须看看它是否适合这种模式。