2010-11-29 2 views
0

charfieldsには非常に基本的なリッチテキスト編集を追加したいと思います。太字、イタリック、カスタムフォントサイズセレクタ(small-normal-large - 別のモデルフィールド設定との相対的なもの)のみを追加したいと思います。最初はdjango-tinymceを使用しようとしましたが、formsetを使用すると、tinymce用のメディアファイルがセットの最初のフォームにのみ適用され、追加されたjs関数が機能しないといういくつかの問題がありました。おそらく、私はこの小規模のノーマル・サイズのフォントサイズセレクターのカスタムウィジェットが必要です(またはモデルフィールドとしてこれを行います)。Django Appのリッチテキスト

この場合、TinyMCEをカスタマイズしてカスタマイズすることをお勧めしますか?そうであれば、すでに作成したフォームを使用する方が簡単ですか?

text=forms.CharField(max_length = 1000, widget=forms.widgets.Textarea()) 
def __init__(self, *args, **kwargs): 
    size = kwargs.pop('size') 
    maxChars = kwargs.pop('maxChars') 
    super(MyForm, self).__init__(*args, **kwargs) 
    self.fields['text'].widget.attrs['onkeypress'] = 'return textCounter(this, this.form.counter, %d);' % maxChars 
    self.fields['text'].widget.attrs['rows'] = size 
    self.fields['text'].widget.attrs['cols'] = '40' 

答えて

0

あなたはどのdjango-せずに有効にすることができCKEditorバージョンを、使用することができます。ここでは

は(動的テキストエリアのサイズを変更する、とJSに文字を制限するためのテンプレートで関数を呼び出す)私は私の形で持っているものですアプリ。他の選択肢は、(非常に)基本的なグローエディタです.BBCのグローホームページを参照してください。

個人的に私はあなたのフォームbtwにjavascriptを含めませんが、それをテンプレートに含めます。

+0

おかげさまで、ckeditorと一緒に行きましたが、これはトリック、いいことをしているようです。この場合は、フォームウィジェットとは対照的に、テンプレート内のテキストエリアを定義することになるので、私はテンプレートにすべてjavascriptを移動することにあなたのアドバイスを取るでしょう。私は初心者ですから、まだテンプレートタグを使って遊ぶ方法に慣れています。助けてくれてありがとう! – HdN8

+0

フォームとそのメディアの詳細については、こちらをご利用ください。http://docs.djangoproject.com/en/dev/topics/forms/media/ –