xadmin 自定义模板

xadmin 自定义模板

自定义xadmin模板添加到后台页面

将下载的xadmin放在我们的项目根目录下面

在每个app里面添加一个adminx.py 文件

在xadmin文件里面进行操作

给你需要的表添加显示在后台里面,编写实例化类

list_display = ['','','']

seacher_fields = []

list_fieldter = []

ordering = []

exclude = []

readonly_fields = []

inlines = []

list_editable =[]   #针对字段里面出现choices选择

refresh_times = [5,2]  #自动刷新后台管理页面


后台外键设置关联添加  (只能嵌套一层)(一个外键对应多个表,可以给多个表设置)

class LessonInline(object):

  model = Lesson

  extry = 0

class Course(object):

  inlines = [LessonInline,]


两个管理器,管理同一个表

在models.py文件里面

class BannerCourse(object):

class Meta:

verbose_name_plural = verbose_name = u'课程'

proxy = True  #在数据库里面不会生成新的数据表

在asminx.py 文件里面

copy管理同一个表的class ,然后在后面添加以下代码:

def queryset(self):

qs = super(该类名, self).queryset()

qs = qs.filter(需要管理的字段 = True)

return qs

在管理同一个表的class ,然后在后面添加以下代码:

def queryset(self):

qs = super(该类名, self).queryset()

qs = qs.filter(需要管理的字段 = False)

return qs

在models.py文件中

可以将自定义函数直接添加到显示里面,修改其名字:该函数名.short_description = '名字'

可以将自定义函数添加页面,添加html代码,实现页面跳转

def go_to(self):

from django.utils.safestring import mark_safe

return mark_safe("跳转")

该函数名.short_description = '名字'

最后将函数名添加到adminx.py中

后台页面自动修改数据

在adminx.py文件中,

'''实例'''

'''保存课程机构的时候统计课程机构偶的课程数'''

def save_models(self):

obj = self.new_obj

obj.save()

if obj.course_org is not none:

course_org = obj.course_org

course_org.course_nums = Courses.objects.filter(course_org=course_org).count()

course_org.save()

xadmin 插件开发

互文本编辑器,UEditor  在github上面搜索djangoueditor,经行安装下载

插件官方文档 网址:http://xadmin.readthedocs.io/en/docs-chinese/plugins.html#

安装流程:

1. pip install DjangoUeditor

2.settings.py 中加入DjangoUeditor

3.在adminx.py文件里面,courseAdmin类里面加入

def save_models(self):

obj = self.new_obj

obj.save()

if obj.course_org is not None:

course_org = obj.course_org

course_org.course_nums = Courses.objects.filter(course_org=course_org).count()

course_org.save()

4.在models里面填入

from DjangoUeditor.models import UEdiitorField

修改该类中的字段内容

detail = UEditorField(verbose_name=u'课程详情',width=600, height=300, imagePath="courser/ueditor/", filePath="courser/ueditor/", default='')

3.url(r'ueditor/',include('DjangoUeditor.urls'))

在经行这一步时,会报错,需要修改源码

修改DjangoUeditor\urls.py文件中的,

第4行  将from django.conf.urls import patterns, url 改为  from django.conf.urls import url, include

第10行 将

urlpatterns = patterns('',

url(r'^controller/$',get_ueditor_controller)

)

改为:

urlpatterns = [

url(r'^controller/$',get_ueditor_controller),

]

在需要修改的app里面的models里面的需要添加ueditor的字段修改为以下字段

4.detai = UEditorField()

5.在\extra_apps\xadmin\plugins下,添加一个文件 ueditor.py

在文件里面填写

# coding=utf-8

import xadmin

from django.db.models import TextField

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(selfself,context,nodes):

js = '' %(settings.STATIC_URL + "ueditor/ueditor.config.js")

js += '' % (settings.STATIC_URL + "ueditor/ueditor.all.min.js")

nodes.append(js)

xadmin.site.register_plugin(UeditorPlugin,UpdateAdminView)

xadmin.site.register_plugin(UeditorPlugin,CreateAdminView)

6.在adminx.py 中,在该类下面添加

style_fields = {"detail":"ueditor"}

7.在\extra_apps\xadmin\plugins下的__init__.py文件中,将'ueditor'其添加在后面

8.在前端页面里面 {% autoescape off %}    {% endautoescape %}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初识面向对象 楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战...
    go以恒阅读 4,470评论 0 6
  • 三、xadmin后台管理 3.1见xadmin建站(预装)获取xadmin 3.2.xadmin的设置 (1)新建...
    偷了月光的猫阅读 4,503评论 0 6
  • Admin Site register(model_or_iterable,admin_class=,**opti...
    兰山小亭阅读 8,379评论 1 3
  • 目录 [TOC] 判断字段值是否包含某个数字,如果是字符,建议用icontains 管理员身份运行cmd配置虚拟环...
    又大又甜的桂圆阅读 3,106评论 0 0
  • 幽默词条(十一) 高枕无忧 一帖医治失眠的民间偏方。一段时期以来,治疗失眠的办法,无非都是服用一些诸如安定类镇静药...
    麻辣元子阅读 952评论 0 1