在安裝好最新的django-ckeditor之後,關於django-ckeditor的簡單配置我就不在贅述,網上已經有很多人寫過了。詳情也可以參考pypi中的官方文件。
這篇文章主要講解django-ckeditor的動態儲存路徑,也就是路徑生成器的配置與用法。我在這裡花了很多的時間,而網上似乎很難搜到現成完整的配置過程和方法,特此在這裡記錄並分享。
首先,要使用django-ckeditor的檔案上傳功能需要在settings.py中安裝應用
['ckeditor'
,'ckeditor_uploader'
,# 需要加入這個應用才支援檔案的上傳
]
# ckeditor的配置
# 檔案上傳路徑(在media/下),如果採用django的預設檔案儲存,則必須配置
# media_root和media_url,ckeditor的預設上傳路徑以media_root為參考,
# 在media_root下面
ckeditor_upload_path =
""# 檔案路徑生成器,動態生成路徑。這裡特別說明,my_utils是自己寫的乙個模
# 塊,名字隨意,這個模組應該放在與django專案的根目錄下,也就是與
# manage.py同級。這個很重要,ckeditor在搜尋這個模組時會從django專案
# 的根目錄下開始搜尋。
ckeditor_filename_generator =
"my_utils.ckeditor_media_path"
# 按日期進行分類,這個功能預設開啟,如果開啟這個功能,則在生成路徑的時候會
# 額外按年/月/日來進行檔案分類,這裡我是想按照使用者pk來分類,所以關了。
# 開啟的話生成的路徑會類似如下:
# 'media_root/your_path/year/month/day/your_file_name'
ckeditor_restrict_by_date =
false
ckeditor_image_backend =
'pillow'
import os
# ckeditor的檔案動態儲存路徑
defckeditor_media_path
(filename, request)
:"""將ckeditor上傳的檔案儲存到使用者**資料夾裡,按pk分類"""
media_path = os.path.join(
str(request.user.pk)
,str
(filename)
)return media_path
from django.contrib import admin
from django.urls import path, include
from django.conf.urls import url
# 與使用者**檔案相關的設定
from django.conf import settings
from django.conf.urls.static import static
urlpatterns =
[ path(
'admin/'
, admin.site.urls)
, path(
'myblog/'
, include(
'myblog.urls'))
,# ckeditor的檔案上傳路徑url
url(r'^ckeditor/'
, include(
'ckeditor_uploader.urls'))
,]+ static(settings.media_url, document_root=settings.media_root)
本文創作於2020.8.31
django版本:3.1
python版本:3.7
django-ckeditor:5.9.0
富文字編輯器Django ckeditor
剛開始學習django的時候,在後台編輯資料的時候,總是在想,功能是否太簡陋了點,只能做簡單的文字編輯,所以在這裡記錄乙個富文字編輯器django ckeditor。選擇標準 具有基本的富文字編輯功能 可以上傳 可以檢視原始碼 有持續更新 維護 1.安裝jango ckeditor pip inst...
container of 的的的原理
另外一篇,同樣精彩,揭開linux核心中container of的神秘面紗 華清遠見嵌入式學院講師。在linux 核心中有乙個大名鼎鼎的巨集container of 這個巨集是用來幹嘛的呢?我們先來看看它在核心中是怎樣定義的。呵呵,乍一看不知道是什麼東東。我們先來分析一下container of p...
存在的就是合理的,發生的即是必然的。
筆者有時候會想,什麼是對,什麼是錯?對於追求某一件事情之前首先會考慮,為什麼我要做這件事情。所以經過自我分析和生活周邊環境的總結。我認為,對於乙個人來,這是在站在個體的角度上說。什麼是對的?就是你自己覺得是對的,它就是對的。不過這個只是你自己的想法。主觀上的正確,不代表客觀上也受到了別人的認可。就拿...