Javascript Django inline小部件-每次;加上另一个“;按钮被点击

Javascript Django inline小部件-每次;加上另一个“;按钮被点击,javascript,django,django-forms,django-templates,django-views,Javascript,Django,Django Forms,Django Templates,Django Views,我将插件用作所有JSON字段的小部件,但是当单击“添加另一个[model]”按钮后添加jsoneditor小部件时,小部件呈现和其他初始化函数(包括JS文件)没有正确调用/加载,因此html加载,但功能无法正常工作 我想知道的是,如何重新加载在单击“添加另一个”按钮后添加的整个jsoneditor/inline小部件 添加和删除内联时,我成功调用了以下JS函数: (function($) { $(document).on('formset:added', function(event, $r

我将插件用作所有JSON字段的小部件,但是当单击“添加另一个[model]”按钮后添加jsoneditor小部件时,小部件呈现和其他初始化函数(包括JS文件)没有正确调用/加载,因此html加载,但功能无法正常工作

我想知道的是,如何重新加载在单击“添加另一个”按钮后添加的整个jsoneditor/inline小部件

添加和删除内联时,我成功调用了以下JS函数:

(function($) {
  $(document).on('formset:added', function(event, $row, formsetName) {
    console.log('Formset added');
  });

  $(document).on('formset:removed', function(event, $row, formsetName) {
    console.log('Formset removed');
  });
})(django.jQuery);
但我想从JavaScript自身内部了解,如何重新加载添加的jsoneditor小部件

以下是小部件供参考:

class JSONEditorWidget(django.forms.Widget):
    template_name = 'django_json_widget.html'

    class Media:
        css = {'all': (_STATIC_URL + 'dist/jsoneditor.min.css',)}
        js = (_STATIC_URL + 'dist/jsoneditor.min.js',)

    def render(self, name, value, attrs=None, renderer=None):
        context = {
            'data': value,
            'name': name
        }

    return django_safestring.mark_safe(django_loader.render_to_string(
        self.template_name, context)
    )

只需重新加载页面。。。但是如果你不想重新加载整个页面,你应该使用JS使它不需要重新加载页面。只想重新加载小部件AdddJango只会回答你如果你去服务器打电话给他,因为他在服务器端工作。。。您可以使用ajax来防止页面重新加载,但我不知道ajax是否适合您的情况,请尝试从jsoneditor中删除JS导入,并使用javascript再次导入(删除html元素,单击按钮后再次添加)