Django-ckeditor不保存带有酥脆形式的编辑

问题描述 投票:0回答:1

我的表单很粗糙,我想将一个字段从Textarea更改为CKEDitorUploadingWdidget

所以我的表单看起来像这样(我离开了以前的工作方式:

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'])

打印件始终提供原始文本。谁能帮我吗

编辑

当我对窗体.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>

和此视图

def rename_study(request, study_name):
    #do stuff
    return render(request, 'researcher_UI/add_study_modal.html', form_package)

因此,现在正在加载我的ckeditor的JavaScript,而不是最初加载文档时,所以我认为这会导致问题。任何想法都非常感谢

我的表单很粗糙,我想将一个字段从Textarea更改为CKEDitorUploadingWdidget,所以我的表单看起来像这样(我以前从事过的工作很简单:类RenameStudyForm(...

javascript django django-crispy-forms django-ckeditor
1个回答
0
投票

找到答案。该表单是通过ajax提交的。因此,我需要将CKEditor数据复制到form字段中,这与[]

for (var instance in CKEDITOR.instances){
    CKEDITOR.instances[instance].updateElement();
}
© www.soinside.com 2019 - 2024. All rights reserved.