2

Django プロジェクトで TinyMCE を使用したいのですが、必要な設定をすべて行った後、ページにアクセスすると、フォームは通常の Django フォームのみをレンダリングし、TinyMCE リッチ テキスト フォームはレンダリングしません。以下は私の設定です。

tinymce フォルダーをメディア フォルダーにコピーしました。

   C:/Python27/Scripts/nate/media/js/tiny_mce

設定.py

  TINYMCE_JS_URL = '/media/js/tiny_mce/tiny_mce.js/'

  TINYMCE_DEFAULT_CONFIG = {
       'plugins': "table,spellchecker,paste,searchreplace",
       'theme': "advanced",
       'cleanup_on_startup': True,
       'custom_undo_redo_levels': 10,

}

  TINYMCE_SPELLCHECKER = True
  TINYMCE_COMPRESSOR = True

urls.py

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

モデル

    class Finmall(models.Model):
       user=models.ForeignKey(User)
       name=models.CharField(max_length=250, unique=True)
       content1 = models.TextField()
       content2 = models.TextField()

       def __unicode__(self):
           return self.user

テンプレート

    <head>
     <script type="text/javascript" src="{{ MEDIA_URL }}/js/tiny_mce/tiny_mce.js"></script>
    </script>
    </head>

   {% block content %}

    <div id="postcribbody" class="wrapper">     

     <p class="list">You can make it</p>
      <form enctype="multipart/form-data"  form action="." method="POST">
          {% csrf_token %}
             {{ FinmallForm.as_p }}
  <input type="submit"  class="cribput" value="Submit"/>
      </form>
      </div>
   {% endblock %}

content1 と content2 に TinyMCE リッチ テキスト形式を表示するにはどうすればよいですか?

4

3 に答える 3

3

ドキュメントからの例:

from django import forms
from tinymce.widgets import TinyMCE

class FinmallForm(forms.ModelForm):
    ...
    content = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
    ...

    class Meta:
        model = Finmall
于 2012-12-28T14:58:12.513 に答える
1

問題は、フォームを Django フォームとして表示していることです。

リッチ エディット テキスト フィールドは、Django が作成しない JS のものになります。django.form 機能は HTML 要素を作成します。

テンプレートに手動でリッチ エディットを追加することをお勧めします。リッチ エディットに Django フォーム要素と同じ「名前」を付ける限り、返される POST で使用できます。

編集:フォームがレンダリングされるときに models.TextField() を公開しています。これにより、フォームに要素が生成されます。このフォームには、デフォルトのプロパティのみがあります。

TinyMCE がどのように機能するかは 100% わかりませんが、「id」または「name」の値を使用してその要素にバインドするか、自分でフォーム コードをテンプレートに入れる必要があります。

私自身は、テンプレートで自分で作成したフォームをレンダリングするために Django を使用せず、Django が与えるものと同じ名前を付けます。

レンダリングされたページのソース コードを見て、フォームがどのように見えるかを確認してください。次に、TinyMCE でテスト ページをセットアップして動作させ、要素の違いを確認します。

:)

于 2012-12-28T14:42:46.563 に答える