Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Django ckeditor不使用脆表单保存编辑_Javascript_Django_Django Crispy Forms_Django Ckeditor - Fatal编程技术网

Javascript Django ckeditor不使用脆表单保存编辑

Javascript Django ckeditor不使用脆表单保存编辑,javascript,django,django-crispy-forms,django-ckeditor,Javascript,Django,Django Crispy Forms,Django Ckeditor,我有一个cripsy表单,我想将一个字段从Textarea更改为ckeditor uploadingwdidget 所以我的表格看起来是这样的(我离开了之前的工作: class RenameStudyForm(BetterModelForm): name = forms.CharField(label='Study Name', max_length=51, required=False) # Update study name #waiver = forms.CharField

我有一个cripsy表单,我想将一个字段从
Textarea
更改为
ckeditor uploadingwdidget

所以我的表格看起来是这样的(我离开了之前的工作:

class RenameStudyForm(BetterModelForm):
    name = forms.CharField(label='Study Name', max_length=51, required=False) # Update study name
    #waiver = forms.CharField(widget=forms.Textarea, label='Waiver of Documentation', required=False) 
    waiver = forms.CharField(widget=CKEditorUploadingWidget(), label='Waiver of Documentation', required=False)
我已将我的模型修改如下:

class study(models.Model):
    researcher = models.ForeignKey("auth.user") # Researcher's name
    name = models.CharField(max_length = 51) # Study name
    instrument = models.ForeignKey("instrument") # Instrument associated with study
    #waiver = models.TextField(blank = True) 
    waiver = RichTextUploadingField(blank = True)
我的模板外观有:

    {% load crispy_forms_tags %}
    {{ form.media }}
    {% crispy form %}    
当我进入屏幕编辑豁免时,我会得到一个富格文本字段进行编辑,正如我所期望的那样。但是,我在该字段中输入的任何内容都不会传递回表单。在表单中,我添加了一条打印语句,如下所示

def clean(self):
    cleaned_data = super(RenameStudyForm, self).clean()
    print(cleaned_data['waiver'])
打印的总是原文。有人能帮我吗

编辑

当我对forms.Textarea小部件使用CKEditorUploadingWidget时,我一直在查看控制台,它似乎生成了以下jQuery警告

主线程上的同步XMLHttpRequest已被弃用,因为 它会对最终用户的体验产生不利影响

我相信我得到了这个,因为我正在使用这个按钮将表单加载到一个模式中

<button type="button" class="btn btn-secondary btn-block"   onclick = "modal_form('/interface/study/{{ current_study|urlencode }}/rename_study/')" >Update Study</button>

因此,我的ckeditor JavaScript现在正在加载,而不是在文档最初加载时加载,因此我认为这是问题的原因。任何真正值得赞赏的想法都找到了答案。表单是通过ajax提交的。因此,我需要将ckeditor数据复制到表单字段中,我可以使用它

for (var instance in CKEDITOR.instances){
    CKEDITOR.instances[instance].updateElement();
}

您是否在
清理(self)
中收到其他字段?是的,其他一切都很好
for (var instance in CKEDITOR.instances){
    CKEDITOR.instances[instance].updateElement();
}