Django集成TinyMCE(admin后台+前台)


Django版本1.11,操作系統windows 7,在pycharm的terminal中使用pip install django-tinymce下載tinymce(前提是裝的python里有pip功能),當然也可以手動下載好后python setup.py install進行安裝。

 

在網上找了好多資料,有說什么新創建個textarea.js什么的雲雲,還要新創建個static文件什么的,感覺挺麻煩的,因此把我的方法分享給大家。

 

找到使用pip安裝的django-tinymce,如果沒有更改路徑的話,應該就是在裝的python文件里的Lib->site-packages(我的是D:\Python27\Lib\site-packages),有一個tinymce文件夾。打開這個文件夾,發現這其實就是一個django模塊有沒有。既然是django模塊,那么我們在我們自己的project里引用這個模塊不就行了?

具體步驟:

1.      將tinymce文件夾復制到你自己的project里面,tinymce相當於是一個APP;

2.      在project文件夾的setting里注冊tinymce:在settings.py里找到INSTALLED_APPS;

INSTALLED_APPS = (

    'django.contrib.admin',

    'django.contrib.auth',

   'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

   'django.contrib.staticfiles',

    'tinymce',

)

3.      上面兩步已經將tinymce成功引入了project,那么怎么用呢?打開你自己的app,比如我的 是blog/models.py,使用from tinymce.models import HTMLField,這里HTMLField就為我們提供了一個富文本編輯器。下面給出一個模塊例子:

 
        
 1 # -- coding: utf-8 --
 2 from django.db import models
 3 from django.contrib import admin
 4 from tinymce.models import HTMLField
 5 # Create your models here.
 6 
 7 class BlogsPost(models.Model):
 8 
 9     title = models.CharField(max_length=150)
10     # body = models.TextField()
11     body = HTMLField()
12     timestamp = models.DateTimeField()
13     auth = models.TextField(default='秋尋草')
14     address = models.CharField(max_length=100, default='西安')
 
        

 

 

4.      如何配置tinymce:tinymce里默認的是最簡單的樣式,而且寬度和高度看起來也挺別扭的,需要我們自己配置,有兩種配置方式。

方法1、

  打開tinymce文件,找到settings.py,打開,找到DEFAULT_CONFIG選項,這個選項是配置選項。將{'theme': "simple", 'relative_urls': False}改成:

{'theme': "advanced",'relative_urls': False,’width’:’1200’,’height’:’500’},此種富文本框還是很簡單;

方法2、

  修改工程的settings.py文件。最下面添加

 1 TINYMCE_DEFAULT_CONFIG = {
 2     # // General options
 3     'mode': 'textareas',
 4     'theme': "advanced",
 5     '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",
 6 
 7     # // Theme  options
 8     'theme_advanced_buttons1': "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect,fullscreen,code",
 9     'theme_advanced_buttons2': "cut,copy,paste,pastetext,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,|,insertdate,inserttime,preview,|,forecolor,backcolor",
10     'theme_advanced_buttons3': "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl",
11     'theme_advanced_toolbar_location': "top",
12     'theme_advanced_toolbar_align': "left",
13     'theme_advanced_statusbar_location': "bottom",
14     'theme_advanced_resizing': 'true',
15 
16     # // content_css: "/css/style.css",
17     'template_external_list_url': "lists/template_list.js",
18     'external_link_list_url': "lists/link_list.js",
19     'external_image_list_url': "lists/image_list.js",
20     'media_external_list_url': "lists/media_list.js",
21 
22 # // Style formats
23     'style_formats': [
24     {'title': 'Bold text', 'inline': 'strong'},
25     {'title': 'Red text', 'inline': 'span', 'styles': {'color': '#ff0000'}},
26     {'title': 'Help', 'inline': 'strong', 'classes': 'help'},
27     {'title': 'Table styles'},
28     {'title': 'Table row 1', 'selector': 'tr', 'classes': 'tablerow'}
29     ],
30     'width': '700',
31     'height': '400'
32 }

 

 

 

按照方法2配置后,我們已經成功將TinyMCE富文本編輯器整合進了我們自己的django網站項目。以下是成果圖:

 

前台頁面使用tinymce:

STEP 1:
在模板的head中添加如下代碼
1 <script src="/static/tiny_mce/tiny_mce.js"></script>
2 <script>
3     tinyMCE.init({
4         'mode':'textareas',
5         'theme':'advanced',
6         'width':450,
7         'height':300
8     })
9 </script>

STEP 2:

模板中添加textarea 標簽,tinymce會自動把此標簽變為富文本框

 
        
1 <form action="">
2     <label>
3         <textarea name="comment_content">富文本</textarea>
4     </label>
5     <br>
6     <input type="submit" value="提交評論" class="btn btn-default">
7 </form>
 
        

以下是效果

 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM