2010-02-22 58 views
3

我有一個模型0123',它可以在管理中用TinyMCE控件進行編輯。不過,我希望能夠根據正在編輯的模型的實例給出不同的TinyMCE選項。我怎樣才能做到這一點?django-tinymce:對不同的實例使用不同的選項

(例如,如果用戶正在編輯SimplePage實例technologies,我想TinyMCE的使用默認的CSS文件,但如果它的編輯,其蛞蝓是tickerSimplePage,我想用一個不同的CSS文件,其蛞蝓)

回答

1

我想你的ModelAdmin中有一個Media類,併爲admin(like here)增加了JavaScript和CSS。你的JavaScript不知道當前對象的slu,,讓我們改變它。

首先建立在你的模板目錄下面的目錄結構中的一種:「管理/ your-app」爲一個應用程序或「管理/ your-app/your-model」爲一個特定的模型只(see the Django documentation)。

然後創建在該目錄中的文件「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塊用你的對象設置一個JavaScript變量slug(original是你的對象)。

現在修改執行tinyMCE.init以在JavaScript變量MYAPP_objectSlug上使用基於 的不同CSS文件的JavaScript文件。

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, 
    ... 
}); 
相關問題