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

Django: Add JS to Form at runtime

我试过这个:

my_form.media.add_js(['path-to/foo.js'])

但从未添加 foo.js

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

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

有两种方法可以在表单中包含 JS(或 CSS)。使用其中 一个不能同时使用

1.使用 class Media

class MyForm(forms.Form):
    # form fields ...
    
    class Media:
        js = ('file_name.js', )
        
        

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