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 を追加しましたが、admin では機能しますが、テンプレートではレンダリングされません。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.) プロジェクトの urls.py に次の URL エントリを追加します。

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 に答える