django模板中的tinymce小部件用法

时间:2013-09-25 19:25:52

标签: django django-forms django-tinymce

我创建了一个模型

class Post(models.Model):
    title = models.TextField()
    body = models.TextField()

并将 forms.py 创建为

class PostForm(forms.ModelForm):
    class Meta:
        model  = Post
        fields = ('title', 'body',)

我添加了tinymce,它可以在admin中运行,但不会在模板中呈现它。我尝试通过forms.py的变体覆盖表单

class PostForm(forms.ModelForm):

    title = forms.TextField(widget=TinyMCE(attrs={'cols': 100, 'rows': 10})

    class Meta:
        model  = Post
        fields = ('title', 'body',)

但它不起作用。提前致谢

1 个答案:

答案 0 :(得分:2)

1。)将Media类添加到表单中:

class PostForm(forms.ModelForm):

    class Meta:
        model = Post
        fields = ('title', 'body',)

    class Media:
        js = ('/site_media/static/tiny_mce/tinymce.min.js',)

2。)将以下内容添加到应显示编辑器的html文件中:

{{ form.media }}
<script type="text/javascript" src="{% url "tinymce-js" "tinymce" %}"></script>

3。)将以下url条目添加到项目urls.py:

url(r'^tinymce/', include('tinymce.urls')),

4.。)在你的模型中,将你的tinymce编辑器字段声明为TextFields。在您的情况下,如果您只想显示身体字段的编辑器,请按以下方式编写模型:

class Post(models.Model):

    title = models.CharField()
    body = models.TextField()