Django(Python3) xadmin和富文本編輯器的配置

一,xadmin配置javascript

  1. 將下載好的xadmin解壓,複製裏面的xadmin文件夾到咱們的項目根目錄當   
  2. 建立extra_apps放置第三方的app,將xadmin移動到咱們這個extra_apps下
  3. 將extra_apps在setting當中配置好搜索路徑
  4. 將xadmin和crispy_forms添加到咱們的installed_apps
  5. 將咱們原本的admin註釋掉改成咱們xadmin
  6. 再次執行遷移同步,目的是爲了生成xadmin所依賴的表二

二,富文本編輯器的配置java

1.將下載好的DjangoUeditor3-master.zip解壓,複製裏面的DjangoUeditor文件夾到咱們的項目根目錄當 node

2.建立extra_apps放置第三方的app,將DjangoUeditor移動到咱們這個extra_apps下django

3.DjangoUeditor添加到咱們的installed_appsapp

4,在主路由配置編輯器

5.找到app下的models,在須要使用富文本框的字段使用UEditorFieldspa

6. xadmin中添加插件ueditor插件

因爲已經將xadmin源文件拷貝到了項目下,爲extra_apps/xadmin,在xadmin下的plugin中新建一個ueditor.py文件,添加如下代碼:3d

import xadmin
from xadmin.views import BaseAdminPlugin, CreateAdminView, ModelFormAdminView, UpdateAdminView
from DjangoUeditor.models import UEditorField
from DjangoUeditor.widgets import UEditorWidget
from django.conf import settings


class XadminUEditorWidget(UEditorWidget):
    def __init__(self, **kwargs):
        self.ueditor_options = kwargs
        self.Media.js = None
        super(XadminUEditorWidget, self).__init__(kwargs)


class UeditorPlugin(BaseAdminPlugin):

    def get_field_style(self, attrs, db_field, style, **kwargs):
        if style == 'ueditor':
            if isinstance(db_field, UEditorField):
                widget = db_field.formfield().widget
                param = {}
                param.update(widget.ueditor_settings)
                param.update(widget.attrs)
                return {'widget': XadminUEditorWidget(**param)}
        return attrs

    def block_extrahead(self, context, nodes):
        js = '<script type="text/javascript" src="%s"></script>' % (
                settings.STATIC_URL + "ueditor/ueditor.config.js")  # 本身的靜態目錄
        js += '<script type="text/javascript" src="%s"></script>' % (
                settings.STATIC_URL + "ueditor/ueditor.all.min.js")  # 本身的靜態目錄
        nodes.append(js)
 

xadmin.site.register_plugin(UeditorPlugin, UpdateAdminView)
xadmin.site.register_plugin(UeditorPlugin, CreateAdminView)

7.orm

import xadmin
from xadmin.views import BaseAdminPlugin, CreateAdminView, ModelFormAdminView, UpdateAdminView
from DjangoUeditor.models import UEditorField
from DjangoUeditor.widgets import UEditorWidget
from django.conf import settings


class XadminUEditorWidget(UEditorWidget):
    def __init__(self, **kwargs):
        self.ueditor_options = kwargs
        self.Media.js = None
        super(XadminUEditorWidget, self).__init__(kwargs)


class UeditorPlugin(BaseAdminPlugin):

    def get_field_style(self, attrs, db_field, style, **kwargs):
        if style == 'ueditor':
            if isinstance(db_field, UEditorField):
                widget = db_field.formfield().widget
                param = {}
                param.update(widget.ueditor_settings)
                param.update(widget.attrs)
                return {'widget': XadminUEditorWidget(**param)}
        return attrs

    def block_extrahead(self, context, nodes):
        js = '<script type="text/javascript" src="%s"></script>' % (
                settings.STATIC_URL + "ueditor/ueditor.config.js")  # 本身的靜態目錄
        js += '<script type="text/javascript" src="%s"></script>' % (
                settings.STATIC_URL + "ueditor/ueditor.all.min.js")  # 本身的靜態目錄
        nodes.append(js)


xadmin.site.register_plugin(UeditorPlugin, UpdateAdminView)
xadmin.site.register_plugin(UeditorPlugin, CreateAdminView)

7. 將ueditor插件添加到plugins中的__init__.py的PLUGINS中

8. 找到app下的adminx.py文件,配置插件

9.配置上傳文件的加載路徑

相關文章
相關標籤/搜索