Tinymce不以形式呈现

时间:2019-06-11 21:28:28

标签: django tinymce

尝试使用tinyMCE在博客内容中提供丰富的输入。我受到限制,因为我使用Django 1.11.20在Messanine内部。 tinyMCE似乎有很多版本,因此很难找到合适的解决方案。

我使用了Fosstack的文档来安装django-tinymce4-lite。然后将其集成到现有的更新博客表单中。表单未显示更改,但仍作为标准CharField呈现。 (此版本的Django不支持TextField)

在views.py

class TinyMCEWidget(TinyMCE):

`def use_required_attribute(self,* args):             返回False

class UpdateForm(forms.ModelForm):
    content = forms.CharField(
        widget=TinyMCEWidget(
            attrs={'required': False, 'cols': 30, 'rows': 10}
        )
    )
    class Meta:
        model = BlogPost
        fields = ['content']

def UpdateContent(request, slug): 
    blog_post = BlogPost.objects.get(id=slug)
    if request.method == 'POST': 
        form = UpdateForm(request.POST)   
        if form.is_valid(): 
            blog_post.content = form.cleaned_data['content']
            blog_post.save()        
            return HttpResponseRedirect('/write/') 
    else:
        form = UpdateForm(instance=blog_post)
    return render(request, 'blog_my_update.html', {'form' : form})   

在blog_my_update.html

<h1>Update Story</h1>
<form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.as_p }}

`更新故事     

我希望看到tinyMCE呈现该表单。但是有一个普通的文本框。有人知道怎么修这个东西吗?预先感谢。

1 个答案:

答案 0 :(得分:0)

如果确定要导入库的css和javascript文件,请确保在模板中使用{{form.media}},如果库使用django媒体格式,则此方法应该起作用,否则,请手动添加必要的编辑器的文件(css,javascript),并确保您具有编辑器通常用于呈现组件的某些类或ID