如何呈现的Django forms.ChoiceField作为Twitter的引导下拉(How to

2019-07-30 17:42发布

什么是最有效的方式(在编程/维护工作,优雅的术语)来渲染一个Django forms.ChoiceField作为使用Django的引导,Django的引导形式之一,Django的自举的工具包,Django的一个Twitter的引导下拉-crispy,表格等应用程序? 是否有这种使用情况在任何这些应用程序的明确支持?

Answer 1:

免责声明我的Django的脆皮形式的首席开发人员(中提到的应用程序之一)。

我会尽量解释你如何做到这一点与Django的脆皮形式。 你根本就在您的模板:

{% load crispy_forms_tags %}
{{ form|crispy }}

你可以看到这一点,更多的Django的脆皮形式的文档 。 只要你想你的ChoiceField将呈现为引导下拉。

相较于Django的引导

首先,历史上的一点点。 Django的引导是后Django的单表(从Django的脆皮形式演变父项目)出生。 当时,Django的单形式已经在做自举形式,但可能不是最好的方式(引导程序是通过使用aditional的应用程序的contrib支持)。 因此,Django的自举的作者可能决定继续自己的。

现在,关于引导支持。 Django的引导也可以呈现形式,但是,而是采用了Django的过滤器,它改变了基类的形式。 所以Django的脆皮形式会影响你的模板,而Django的引导影响你的Python代码。

此外,无论是Django的脆皮形式和Django的自举让你做布局。 在Django的引导,布局在元类的形式内,而在Django的脆皮形式布局住的子类FormHelper ,它给你去耦。

Django的自举使用元组用于定义布局,而松脆-形式使用的一个子类Layout 。 这增加的可能性重用的布局,很容易构成布局,等等。注意,虽然香脆的封装仍然具有内字段的列表,它增加了一个有益的和人性化的API以编程方式操作的布局,我想强制一个很好的去耦模式。

从我所看到的,脆皮的形式布局更加强大。 它有一个更大的布局对象集合,例如,前置文字,附加文本,日期范围和其他人已经被支持,而在Django的自举这些都是待办列表。

脆皮形式也有在旅途中修改的布局,做一些铁杆的纲领性布局构建这是非常好的一个API。

脆皮形式也支持各种表单集。 它支持不同的CSS模板包,这意味着如果在今后的新踢CSS包被命名为“巧克力”,这将是很容易的创建一个新的模板包它和所有的形式将能够以“呈现巧克力”无需更改代码,只需简单的设置变量。

脆皮形式也有属性 ,你可以在设置FormHelper定义很好的额外functionaly您可以轻松地打开和关闭。 如果你愿意,也可以创建自己的自定义属性。

最后,Django的脆皮形式(Django的-UNI-形式一起)拥有超过67.000的下载,这是相当不错的Django应用程序。 该项目在Github上近500追随者,几大用户,良好的测试覆盖率和几十年的历史,它仍然保持积极。

相较于Django的引导形式

从我所看到的Django引导形式仅用于渲染形式引导过滤器。 这是什么Django的酥脆形式,同时提供更多,更多覆盖。 该项目被发布于2012年8月21日,并在我看来就像它重新发明轮子,因为其他几个应用程序已经涵盖这种使用情况。

相较于Django的自举的工具包

它是由Django的自举形式的启发。 从我的文档看,它也给你呈现形式引导过滤器。 它显然比覆盖多形式引导的东西,但我找不到它的文档的详细信息。 最后提交2个月前。


我会坚持,我显然不适合这不会偏袒比较合适的人选。 这就是为什么我从来没有写过关于这一点。 我可以发表一篇博客文章了几次,但我一直驳斥了这种观点。 然而,随着形式的应用程序(和引导支持的应用程序)的碎片越来越多,我想这可能是写下什么,我认为一个好时机。 我希望这可以帮助初来乍到的Django。

干杯,米格尔



文章来源: How to render Django forms.ChoiceField as Twitter Bootstrap dropdown