2017-08-08 83 views
0

我想弄清楚如何在我的表单中自定义Ckeditor文本框。我已经在本地安装了CKeditor,并且在本地运行时它工作正常。当我尝试从CDN运行它时,我无法弄清楚如何自定义我的textarea。它将使用CDN显示正常,但它只是文本区域,没有文本区域的功能。我花了最后两天寻找答案,但似乎没有任何工作。我的HTML形式如下:Ckeditor - Django

<div class="spacer1"> 
    <label class="label6">Roster</label> 
    <textarea class="bushes"> 
    {{ form.procedure }} 
    </textarea> 

当我运行我的应用程序,它只是带我在textarea的Django的-CKEditor的小部件的HTML。如下图所示:

<div class="django-ckeditor-widget" data-field-id="id_procedure" style="display: inline-block;"> 
    <textarea cols="40" id="id_procedure" maxlength="2000" name="procedure" rows="10" required data-processed="0" data-config="{"skin": "moono-lisa", "toolbar_Basic": [["Source", "-", "Bold", "Italic"]], "toolbar_Full": [["Styles", "Format", "Bold", "Italic", "Underline", "Strike", "SpellChecker", "Undo", "Redo"], ["Link", "Unlink", "Anchor"], ["Image", "Flash", "Table", "HorizontalRule"], ["TextColor", "BGColor"], ["Smiley", "SpecialChar"], ["Source"]], "toolbar": "Full", "height": 291, "width": 835, "filebrowserWindowWidth": 940, "filebrowserWindowHeight": 725, "language": "en-us"}" data-external-plugin-resources="[]" data-id="id_procedure" data-type="ckeditortype"> 

如果我尝试显示在我的HTML作为form.as_p形式,它工作正常,当我尝试定制我的Django形式的这一部分,它不会工作。我不是默认form.as_p显示器的粉丝,我需要能够自定义表单的外观。我也尝试过{{form.procedure | safe | escape}}但无济于事。我试图从CDN运行CKEditor,因为它似乎加载速度比在我的笔记本电脑上本地运行速度快。

如果有其他方法可以让Ckeditor在本地加载,如果这是可能性,我愿意接受。或者从CDN运行它也不错,但我似乎无法弄清楚在使用CDN或Django模板时如何获取工具栏。

在此先感谢您的任何建议!

+0

您可以在您为自定义表单创建的窗体类的字段中添加您自己的类。或者,只使用HTML制作自己的textarea。您只需要保持HTML元素的'name'属性与表单类中的字段名称相同。 –

+0

@Sachin Kukreja。感谢您花时间提供帮助。是的,我现在能够改变表格并设置我想要的框。剩下的问题是HTML中的模板标签和表单本身的CKEditor工具栏。我添加了链接,但表单不是用工具栏呈现的,只是一个空文本编辑器。我在哪里指定CDN版本的选项?使用本地版本,我在settings.py文件中设置了这些选项,并且可以工作,但它似乎不适用于CDN版本。 –

回答

0

经过大量的试验和错误之后,我能够确定文本区域内的{{form.procedure}}引用是导致所有HTML源代码出现在textarea中的原因。最终,我确定我需要恢复到我正在使用的django-ckeditor程序来获得所需的配置。对于未来的谷歌搜索引擎,我最终能够通过在Django之外运行本地HTML代码来帮助自己排除故障,试图解决发生的问题。我有一些与Ckeditor相冲突的源代码库,一旦我确定django模板引用也让我产生一些悲伤,那么我就能够排除一切。