前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3 + Django + xamdin + DjangoUediter,UEditorField 在 xadmin 下加载不出来的解决办法

Python3 + Django + xamdin + DjangoUediter,UEditorField 在 xadmin 下加载不出来的解决办法

作者头像
卓越笔记
发布2023-02-18 09:44:29
3690
发布2023-02-18 09:44:29
举报
文章被收录于专栏:卓越笔记

使用环境

python==3.6.8

django==1.11.18

xadmin

# pip install git+git://github.com/sshwsfc/xadmin.git

DjangoUediter

问题现象

1. UEditorField 在 xadmin 下加载不出来

2. 编辑用户信息,在 xadmin 页面也打开失败

代码语言:javascript
复制
File "E:\yinzhuoqun\djangos\Joyo\extra_apps\xadmin\widgets.py", line 82, in render

'</i></span>%s<span class="input-group-btn"><button class="btn btn-default" type="button">%s</button></span></div></div>' % (input_html[0], _(u'Today'), input_html[1], _(u'Now')))

IndexError: list index out of range

解决办法

path: ~\DjangoBlog\apps_extra\xadmin\plugins 下添加如下文件 ueditor.py:

代码语言:javascript
复制
# -*- coding: utf-8 -*-

__author__ = 'xieboke.net'

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)

添加 'ueditor' 到 PLUGINS

位置: ~\DjangoBlog\apps_extra\xadmin\plugins\__init__.py 里的 的 PLUGINS 里加个  'ueditor',如下

代码语言:javascript
复制
PLUGINS = (
    'actions', 
    'filters', 
    'bookmark', 
    'export', 
    'layout', 
    'refresh',
    'details',
    'editable', 
    'relate', 
    'chart', 
    'ajax', 
    'relfield', 
    'inline', 
    'topnav', 
    'portal', 
    'quickform',
    'wizard', 
    'images', 
    'auth', 
    'multiselect', 
    'themes', 
    'aggregation', 
    'mobile', 
    'passwords',
    'sitemenu', 
    'language', 
    'quickfilter',
    'sortablelist',
    'importexport',
    'ueditor'
)

修改后重启查看 UEditorField

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-6-13 1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用环境
  • 问题现象
  • 解决办法
  • 添加 'ueditor' 到 PLUGINS
  • 修改后重启查看 UEditorField
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档