2013-04-19 3 views
1

나는 Django 1.5.1을 사용하고 있으며 Django 1.3 이후로 미디어와 statis 파일의 세계는 좋은 이유로 분리되어있다.static_files를 가리 키도록 TINYMCE를 설정하는 방법은 무엇입니까?

놀랍게도 django-tinymce의 documentation은 기본적으로 TINYMCE_JS_URL이 미디어 URL을 가리키는 방식을 나타냅니다.

TINYMCE_JS_URL (default: settings.MEDIA_URL + 'js/tiny_mce/tiny_mce.js') 

그건별로 의미가 없습니다. Django 1.3+에서와 같이 자체 호스팅 된 js 및 css 파일에 대한 static_url을 보유하고 있습니다. 그러나 그것을 바꾸려고하면 혼란스럽고 작동하지 않습니다. 내가 TinyMCE에의 ZipFile를 추출 한 static_files 디렉토리에서

STATIC_ROOT = '/home/kave/project-env/site/static/' 
STATIC_URL = '/static/' 
STATICFILES_DIRS = ('/home/kave/project-env/site/static_files/',) 

: 예를 들어,

는 어떻게 보통 설정 내 정적 파일 설정입니다 경로는 다음과 같이이다 :
/home/kave/project-env/site/static_files/tinymce/js/tinymce/tinymce.min.js 

그런 다음 나는이 같은 설정을 설정 한 :
TINYMCE_JS_URL = STATIC_URL + 'tinymce/js/tinymce/tinymce.min.js' 
TINYMCE_JS_ROOT = STATIC_ROOT + 'tinymce/js/tinymce' 

그러나 응용 프로그램이 실행될 때, 내가 대신 TinyMCE에의 일반 텍스트 필드를 볼 때.

내가 간과 할 수있는 것이 있습니까?

+1

Django-tinymce가 4 년 만에 업데이트되었습니다. 내 Django 프로젝트에서 TinyMCE를 사용하지만 이와 같은 응용 프로그램을 사용할 필요가 없다고 생각한 적이 없습니다. 당신은 모든 것을 손으로하는 것을 고려할 수 있습니다. 어렵지 않습니다. –

+0

정말입니까? 불과 12 일 전에 작성된 것 같습니다 : https://github.com/aljosa/django-tinymce 흠,하지만 당신이 옳은 것 같아요. jquery 일 뿐이니까요, 수동으로 할 수 있어요. 다운로드 페이지를보고 : http://www.tinymce.com/download/download.php 기본 빌드 옆에 jquery 빌드가있는 것 같습니다. 어느 것을 골라야합니까? – Houman

+0

죄송합니다, 나는 github에서 포크를봤을 수도 있습니다. 최근에 업데이트 된 모양입니다. 브라우저에서 "소스보기"를 수행하여 스크립트 태그가 설정에 적합한 지 확인할 수 있습니다. 그것은 당신에게 일어나는 일에 대한 단서를 줄 수 있습니다. –

답변

3

나는 그것을 마침내 알아 냈습니다. 다른 사람을 돕기를 바랍니다.

pip를 통해 자동으로 설치된 내장 tiny_mce를 가리켜 야합니다. 아무 것도 다운로드 할 필요가 없습니다.

관리자 화면
<script type="text/javascript" src="{{ STATIC_URL }}tiny_mce/tiny_mce.js"></script> 

,이 있는지 확인 :

class TinyMCEAdmin(admin.ModelAdmin): 
    class Media: 
     js = ('/static/tiny_mce/tiny_mce.js',) 

admin.site.register(MyModel, TinyMCEAdmin) 

을 그리고를 사용해야합니다보다

TINYMCE_DEFAULT_CONFIG = { 
    # General options 
    'mode' : "textareas", 
    'theme' : "advanced", 
    'plugins' : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave", 

    # Theme options 
    'theme_advanced_buttons1' : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,fontselect,fontsizeselect,", #fullscreen,code", 
    'theme_advanced_buttons2' : "bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,|,forecolor,backcolor", 
    #'theme_advanced_buttons3' : "tablecontrols,|,hr,sub,sup,|,charmap", 

    'theme_advanced_toolbar_location' : "top", 
    'theme_advanced_toolbar_align' : "left", 
    'theme_advanced_statusbar_location' : "bottom", 
    'theme_advanced_resizing' : 'true', 

    #Example content CSS (should be your site CSS) 
    #content_css : "/css/style.css", 

    'template_external_list_url' : "lists/template_list.js", 
    'external_link_list_url' : "lists/link_list.js", 
    'external_image_list_url' : "lists/image_list.js", 
    'media_external_list_url' : "lists/media_list.js", 

    # Style formats 
    'style_formats' : [ 
     {'title' : 'Bold text', 'inline' : 'strong'}, 
     {'title' : 'Red text', 'inline' : 'span', 'styles' : {'color' : '#ff0000'}}, 
     {'title' : 'Help', 'inline' : 'strong', 'classes' : 'help'}, 
     {'title' : 'Table styles'}, 
     {'title' : 'Table row 1', 'selector' : 'tr', 'classes' : 'tablerow'} 
    ], 

    'width': '700', 
    'height': '400' 
} 

다른 settings.py의 설정을 잊지 마세요 모든 모델 텍스트 필드에 대해 모델 내부의 HTMLField. form.py에서 modelform을 사용하지 않는 경우 새로운 위젯을 정의해야합니다.

관련 문제