Xadmin---Admin Site

Admin Site


register(model_or_iterable,admin_class=,**options)[source]

register the Model that need to be managed, or register the OptionClass of the AdminView

Parameters:

model_or_iterable– 传入 model 或是指定的 ModelOptionClass

admin_class– 当 model_or_iterable 为 Model 时,该参数为 ModelAdmin;model_or_iterable 为 AdminView 时 ,该参数为 OptionClass

注册需要管理的Model, 或是注册某AdminView的OptionClass.

参数:

model_or_iteralbe: 传入model或AdminView

admin_class:当model_or_iterable是Model时,该参数为ModelAdmin;当model_or_iterable是AdminView时,该参数为OptionClass.

例子:参见xadmin/adminx.py中,

from models import UserSettings

from views import CommAdminView, BaseAdminView

class UserSettingsAdmin(object):

        model_icon='fa fa-cog'

        hidden_menu =True

class GlobalSetting(object):

          #设置base_site.html的Title

           site_title ='兰山小亭'

           #设置base_site.html的Footer

           site_footer ='By KeaiDuo'

           #菜单设置

          defget_site_menu(self):

          pass

#20160627

class BaseSetting(object):

          enable_themes =True

          use_bootswatch =True

xadmin.site.register(UserSettings, UserSettingsAdmin)

xadmin.site.register(CommAdminView, GlobalSetting)

xadmin.site.register(BaseAdminView, BaseSetting)



Register的输出结果:

!!!!!!!!xadmin\sites.py register 1 triggered model_or_iterable is <class 'xadmin.models.UserSettings'>, admin_class is <class 'xadmin.adminx.UserSettingsAdmin'>

!!!!!!!!xadmin\sites.py register 2 triggered model is <class 'xadmin.models.UserSettings'>, model._meta is xadmin.usersettings , model._meta.app_label is  xadmin , model._meta.model_name is  usersettings

!!!!!!!!xadmin\sites.py register 3 done admin_class is <class 'xadmin.sites.xadminusersettingsAdmin'>

!!!!!!!!xadmin\sites.py register 1 triggered model_or_iterable is <class 'xadmin.views.base.CommAdminView'>, admin_class is <class 'xadmin.adminx.GlobalSetting'>

!!!!!!!!xadmin\sites.py register2 triggered admin class is <class 'xadmin.views.base.CommAdminView'>

!!!!!!!!xadmin\sites.py register3 done admin_view_class is <class 'xadmin.adminx.GlobalSetting'>

!!!!!!!!xadmin\sites.py register 1 triggered model_or_iterable is <class 'xadmin.views.base.BaseAdminView'>, admin_class is  <class 'xadmin.adminx.BaseSetting'>

!!!!!!!!xadmin\sites.py register2 triggered admin class is <class 'xadmin.views.base.BaseAdminView'>

!!!!!!!!xadmin\sites.py register3 done admin_view_class is <class 'xadmin.adminx.BaseSetting'>

In the final, 

register_modelview(path,admin_view_class,name)[source]

register the classes Model Base Admin View to the AdminSite(将Model Base Admin View类注册到AdminSite)

Parameters:

path– view对应的url路径

admin_view_class– 注册的 Model Base Admin View 类

name– view对应的url name, 要包含两个%%s, 分别会替换为 app_label和module_name

the registered Model Base Admin View in the AdminSite can be used to create AdminView for the registered Model which will contain the relevant Model information. Please check xadmin.views.base.ModelAdminView to see the details. For example:(注册Model Base Admin View可以为每一个在xadmin注册的Model生成一个Admin View,并且包含相关的Model信息。注册后,用户可以通过访问‘/%(app_label)s/%(module_name)s/123/test’访问到该View。 具体内容可以参看xadmin.views.base.ModelAdminView。)

after the registration, the view can be accessed by path ‘/%(app_label)s/%(module_name)s/123/test’

例子,参见xadmin/views/__init__.py中register_builtin_views,

site.register_modelview(r'^, ListAdminView,name='%s_%s_changelist')

结果:!!!!!!!!xadmin\ sites.py register_modelview triggered path is  ^$ , admin_view_class is <class 'xadmin.views.list.ListAdminView'>, name is  %s_%s_changelist

In the final,

register_view(path,admin_view_class,name)[source]

an independent admin page e.g. login page, introduction page, help page, ect can be created by registering the AdminView class to the AdminSite.(将Admin View类注册到AdminSite,一般用于创建独立的admin页面,例如登录,介绍页面,帮助页面等。关于Admin View具体内容可以参看xadmin.views.base.BaseAdminView。)

Parameters:

path– view对应的url路径

admin_view_class– 注册的 Admin View 类

name– view对应的url name

See xadmin.views.base.BaseAdminView to see the details about AdminView. For example:

after the registration, the users can access the view through the path of ‘/test_view/’(注册后,用户可以通过访问'/test_view/'访问到该view。)

例子,参见xadmin/views/__init__.py中register_builtin_views,

site.register_view(r'^, IndexView,name='index')

结果:!!!!!!!!xadmin\ sites.py register_view triggered path is  ^$ , admin_view_class is <class 'xadmin.views.website.IndexView'>, name is  index

In the final,

register_plugin(plugin_class,admin_view_class)[source]

register the Plugin class to the instance of AdminSite, the instance of corresponding plugin class which is bound to the current view class will be effective when any instance of the AdminView classes runs.(将Plugin类注册到AdminSite,当任何Admin View实例运行时当前view绑定的plugin会生效。)

Parameters:

plugin_class– view对应的url路径

admin_view_class– 该 plugin 绑定的 Admin View 类

please see xadmin.views.base.BaseAdminPlugin about the details of Admin Plugin. For example:(关于Admin Plugin具体内容参看xadmin.views.base.BaseAdminPlugin。)

after the registration, the plugin will be called when the get_context method of SomeAdminView is invoked.(注册后,只要运行SomeAdminView实例的get_context方法,就会调用该plugin。)

例子,参见xadmin/plugins/__init__.py中register_builtin_plugins - > xadmin/plugins/actions.py,

site.register_plugin(ActionPlugin, ListAdminView)

结果:!!!!!!!!xadmin\ sites.py register_plugin triggered plugin_class is <class 'xadmin.plugins.actions.ActionPlugin'>, admin_view_class is <class 'xadmin.views.list.ListAdminView'>

In the final,

get_view_class(view_class,option_class=None,**opts)[source]

the most core method of xadmin is used to create specific AdminViewClass that belongs to xadmin(xadmin中最核心的方法,用于创建xadmin特有的AdminViewClass。

there are two steps of creating AdminView class instance and dynamically generating the mix class.(创建AdminView class有两步,动态生成mix的类。)

use the registered OptionClass (see method register), the option_class parameter and the view_class to dynamically create the class instance(使用已经注册的OptionClass, 通过option_class和view_class参数动态生成类)

retrieve the corresponding plugins according to the view_class and its super classes, and create it as the ‘plugins’ properties of the AdminViewClass(根据view_class及其继承类找到相应的plugins,作为生成AdminViewClass的plugins属性)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,399评论 0 23
  • 汤盘之辩: 这是一篇极具教育意义的寓言文言文。通过两小儿争辩太阳在早晨和中午距离人们远近的问题,使孔子不能判断谁是...
    篱下老人阅读 1,089评论 0 1
  • 2017年6月25,今天是开斋吉庆之日,宝宝已经29周+1天啦!中午吃完斋面,正在休息之余,门被砸的咚咚咚咚...
    碧海颖天阅读 185评论 0 0
  • 三天四夜的深圳之旅转瞬即逝,知识点已经随着时间一起走光了,然而有些东西却深深的留在了我的身体里面,随着我的血液在我...
    逍遥的小鱼阅读 260评论 5 8