Django:在运行时将JS添加到Form

gue*_*tli 0 javascript django runtime

我尝试了这个:

my_form.media.add_js(['path-to/foo.js'])
Run Code Online (Sandbox Code Playgroud)

foo.js从未添加。

我发现这media是一个财产。这样,每次使用它都会被创建my_form.media。结果add_js()是仅添加到临时媒体对象,该对象将在下一条Python行中消失。

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

xyr*_*res 5

有两种方法可以在表单中包含JS(或CSS)。使用任何的他们,不是两个

1.使用 class Media

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

    class Media:
        js = ('file_name.js', )
Run Code Online (Sandbox Code Playgroud)

2.使用media财产

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

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

        js = ('file_name.js',)

        media.add_js(js)
        return media
Run Code Online (Sandbox Code Playgroud)