django-ckeditor使用
2689 ワード
django-ckeditor
1インストール
2構成 INSTALLED_APPSに を変更する.トピック関連構成(settings) 静的ファイル関連構成(ピクチャ) URLconfig 導入パッケージ urlpatterns
3使用
1一般的な方法で、フロントページでもバックグラウンドでもページを管理できます
2 Admin/Xadminバックグラウンドで使用
モデルフィールドを直接修正してadminにすべてのことを渡すのは手間が省けますが、柔軟ではありません.後期開発メンテナンスにも不利です.
1インストール
pip install ckeditor
2構成
'ckeditor',
を追加書き込みフィールドのフォーマットCKEDITOR_CONFIGS = {
'default': {
'toolbar': 'full',
'height': 300,
'width': 600,
'tabSpaces': 4,
'extraPlugins': 'codesnippet', #
}
}
1 INSTALLED_APPS
'ckeditor_uploader',
2
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
CKEDITOR_UPLOAD_PATH = 'Article_media'
from django.conf.urls import url,include
from django.views.static import serve
urlpatterns = [
...
url(r'^ckeditor/', include('ckeditor_uploader.urls'),),
url(r'^media/(?P.*)', serve, {"document_root": develop.MEDIA_ROOT}),
...
]
urlpatterns = [
...
url(r'^ckeditor/', include('ckeditor_uploader.urls'),),
...
] + static(settings.MEDIA_URL, documnets_root = settings.MEDIA_ROOT)
3使用
1一般的な方法で、フロントページでもバックグラウンドでもページを管理できます
# admin/Xadmin , form , , clean , 。
from ckeditor_uploader.widgets import CKEditorUploadingWidget
class ArticleAdminForm(forms.ModelForm):
# content_ck , clean ,
content_ck = forms.CharField(widget=CKEditorUploadingWidget(), label=' ', required=False)
#
content = forms.CharField(widget=forms.HiddenInput(), required=False)
class Meta:
model = Article
fields = (
'category', 'tag', 'desc', 'title',
'editor_type', 'content', 'content_ck',
'status'
)
def clean(self):
content = self.cleaned_data.get('content_ck')
if not content:
self.add_error('content_ck', ' !')
return
self.cleaned_data['content'] = content
return super().clean()
2 Admin/Xadminバックグラウンドで使用
モデルフィールドを直接修正してadminにすべてのことを渡すのは手間が省けますが、柔軟ではありません.後期開発メンテナンスにも不利です.
from ckeditor.fields import RichTextField
class Article(models.Model):
title = models.CharField(max_length=254, unique=True)
body = RichTextField()
def __str__(self):
return self.title