如何将JS框架与django表单集成

如何将JS框架与django表单集成,django,django-forms,django-templates,Django,Django Forms,Django Templates,我是django的新手。我使用django表单来呈现HTML表单 我想用流行的JS框架“Select2”替换默认的ChoiceField 我知道直接在HTML页面上这样做很容易,但我发现很难将其集成到django表单设计中。也许一些第三方django插件也可以,但当我再添加一个JS框架时,我可能需要越来越多的第三方django插件 那么,使用django表单的正确方法是什么呢?为什么django在HTML页面之外使用HTML表单?与Java一样,所有HTML元素都将进入JSP页面。我只需在呈现表

我是django的新手。我使用django表单来呈现HTML表单

我想用流行的JS框架“Select2”替换默认的ChoiceField

我知道直接在HTML页面上这样做很容易,但我发现很难将其集成到django表单设计中。也许一些第三方django插件也可以,但当我再添加一个JS框架时,我可能需要越来越多的第三方django插件


那么,使用django表单的正确方法是什么呢?为什么django在HTML页面之外使用HTML表单?与Java一样,所有HTML元素都将进入JSP页面。

我只需在呈现表单的模板内添加
{%block extra_header%}
中所需的
标记即可。这些脚本标记应该加载库,并直接在客户端的选择框中运行它(不需要服务器端更改)。可能需要的任何DOM更改也应该在这些脚本中完成(这将封装和隔离新特性)


{%block extra_header%}
应直接加载到主模板的
部分。

您可以编写自定义小部件并将其附加到ChoiceField。 这不是一条单行线,但看起来好像有人让你轻松了。看看这个:


应该适用于这种情况。但是当我添加更多的JS框架时,我必须添加更多这样的库?我不认为这是一种优雅的方式。你可以看看他们是如何做到的,并使用相同的方法。基本上,使用select2创建一个django小部件。这样,我需要为每个新的JS框架编写一个小部件?