Django iniline小部件-每次单击“添加其他”按钮时刷新内联小部件

时间:2018-07-04 16:04:29

标签: javascript django django-forms django-templates django-views

我正在使用jsoneditor插件作为所有JSON字段的窗口小部件,但是在单击“添加另一个[模型]”按钮后添加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)
    )

0 个答案:

没有答案