Javascript Django:在运行时将JS添加到表单

Javascript Django:在运行时将JS添加到表单,javascript,django,runtime,Javascript,Django,Runtime,我试过这个: my_form.media.add_js(['path-to/foo.js']) 但是从未添加过foo.js 我发现media是一个属性。这样,每次我使用我的表单.media时都会创建它。因此,add_js()只添加到一个临时媒体对象,它将在下一行Python中消失 如何在运行时将JS文件添加到django表单?在表单中包含JS(或CSS)有两种方法。使用其中一个,而不是两个 1。使用课堂媒体 class MyForm(forms.Form): # form fields

我试过这个:

my_form.media.add_js(['path-to/foo.js'])
但是从未添加过
foo.js

我发现
media
是一个属性。这样,每次我使用
我的表单.media
时都会创建它。因此,
add_js()
只添加到一个临时媒体对象,它将在下一行Python中消失


如何在运行时将JS文件添加到django表单?

在表单中包含JS(或CSS)有两种方法。使用其中一个,而不是两个

1。使用
课堂媒体

class MyForm(forms.Form):
    # form fields ...

    class Media:
        js = ('file_name.js', )
2。使用
媒体
属性

class MyForm(forms.Form):
    # fields ...

    @property
    def media(self):
        media = super(MyForm, self).media

        js = ('file_name.js',)

        media.add_js(js)
        return media

在表单中包含JS(或CSS)有两种方法。使用其中一个,而不是两个

1。使用
课堂媒体

class MyForm(forms.Form):
    # form fields ...

    class Media:
        js = ('file_name.js', )
2。使用
媒体
属性

class MyForm(forms.Form):
    # fields ...

    @property
    def media(self):
        media = super(MyForm, self).media

        js = ('file_name.js',)

        media.add_js(js)
        return media

(我可能误解了你的问题)一旦django提供页面,它就不再控制页面了。客户端浏览器现在保存它正在查看的页面和所有链接到它的js文件。您可以对JS文件发出AJAX请求,并动态加载它们,或者提供将在运行时请求的JS文件列表。在这两种情况下,您都必须在页面中插入检索JS和初始化的代码。@kicker86是的,您误解了我的意思。到目前为止,响应尚未离开服务器。我有一个表单实例,希望在运行时向其媒体添加一个JS文件。我希望现在更清楚。请看一下这里的媒体课(我可能误解了你的问题)。一旦django提供了页面,它就不再控制它了。客户端浏览器现在保存它正在查看的页面和所有链接到它的js文件。您可以对JS文件发出AJAX请求,并动态加载它们,或者提供将在运行时请求的JS文件列表。在这两种情况下,您都必须在页面中插入检索JS和初始化的代码。@kicker86是的,您误解了我的意思。到目前为止,响应尚未离开服务器。我有一个表单实例,希望在运行时向其媒体添加一个JS文件。我希望现在更清楚。请看一下这里的媒体类。我不知道您可以创建一个名为
Media
的属性。这个答案解决了我的问题。非常感谢。现在我找到了相关文档:我不知道您可以创建一个名为
media
的属性。这个答案解决了我的问题。非常感谢。现在我找到了相关的文档: