2

我创建了一个模型

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

并将forms.py创建为

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

我添加了tinymce,它在管理员中工作,但不在模板中呈现。我试图通过 forms.py 的变体覆盖表单

class PostForm(forms.ModelForm):

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

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

但它不起作用。提前致谢

4

1 回答 1

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。在您的情况下,如果您只想显示 body 字段的编辑器,请按以下方式编写模型:

class Post(models.Model):

    title = models.CharField()
    body = models.TextField()
于 2013-09-25T20:15:08.860 回答