3

HTMLField管理者の TinyMCE コントロールで編集できるモデルがあります。ただし、編集中のモデルのインスタンスに応じて、TinyMCE にさまざまなオプションを提供できるようにしたいと考えています。これどうやってするの?

(たとえば、ユーザーがSimplePageスラッグが であるインスタンスを編集している場合、 technologiesTinyMCE にデフォルトの CSS ファイルを使用させたいのですが、スラッグが であるインスタンスを編集している場合SimplePageticker、別の CSS ファイルを使用したいと考えています。)

4

1 に答える 1

1

Media管理者用の追加の JavaScript と CSS を使用して、ModelAdmin にクラスがあると思います(ここのように)。JavaScript は現在のオブジェクトのスラッグを認識していません。それを変更しましょう。

最初に、次のいずれかのディレクトリ構造をテンプレート ディレクトリに作成します。your-appアプリの場合は「admin/ your-appyour-model、特定のモデルのみの場合は「admin/ /」です ( Django のドキュメントを参照してください)。

次に、そのディレクトリにファイル「change_form.html」を作成し、次のようなものをそこに置きます。

{% extends "admin/change_form.html" %}
{% block extrahead %}
<script type="text/javascript" charset="utf-8">
    var MYAPP_objectSlug = "{{ original.slug|escapejs }}";
</script>
{{ block.super }}
{% endblock %}

これにより、管理者の通常の「change_form.html」が拡張され、extraheadブロックが拡張されて、オブジェクト スラッグ (originalオブジェクトはオブジェクト) で JavaScript 変数が設定されます。

tinyMCE.init次に、JavaScript 変数に基づいて別の CSS ファイルを使用するように、JavaScript ファイルを調整しますMYAPP_objectSlug

if (MYAPP_objectSlug == "ticker"){
    var MYAPP_cssFile = "../css/special.css"; // change to your path
} else {
    var MYAPP_cssFile = "../css/default.css"; // change to your path
}

tinyMCE.init({
    ...
    content_css : MYAPP_cssFile,
    ...
});
于 2010-02-25T20:57:37.073 に答える