xadmin

DJANGO XADMIN的使用 (二)

上一篇中我們基本完成了xadmin的配置,但是要進行正式使用還需要更多細緻的配置。

 

1.頁面顯示中文

settings.py中配置(這個和django自帶的admin配置一樣)

1

2

3

4

5

# LANGUAGE_CODE = 'en-us'

LANGUAGE_CODE = 'zh-hans'

 

# TIME_ZONE = 'UTC'

TIME_ZONE = 'Asia/Shanghai'

可見登錄頁面和首頁都變成中文了:

 

 2.xadmin的site-title和site-footer,菜單摺疊

site-title和site-footer都是設置在base_site.html模板頁面中的,可以從xadmin的安裝目錄下的xadmin\templates\xadmin目錄中找到:

從圖片中可以看出來,site_title和site_footer都是可以通過程序設置的變量,那麼想要設置這兩個變量要怎麼做呢?只要在adminx.py文件中添加GlobalSetting類,具體代碼如下:

1

2

3

4

5

6

7

8

9

from xadmin import views

 

 

class GlobalSetting(object):

    # 設置base_site.html的Title

    site_title = '我的腦袋'

    # 設置base_site.html的Footer

    site_footer  = '我的腳丫'

xadmin.site.register(views.CommAdminView, GlobalSetting)

  效果:

設置菜單摺疊,在上面代碼下添加:   menu_style = "accordion"

摺疊菜單如下:

 

 3.設置models的全局圖標

和上面修改title和footer一樣,在類GlobalSetting 中添加:

1

2

3

global_models_icon = {

    V_UserInfo: "glyphicon glyphicon-user", UserDistrict: "fa fa-cloud"

}  # 設置models的全局圖標

  

 

這樣我們可以看到圖標的model圖標的變化

至於圖標的對應代碼可以去  

http://v3.bootcss.com/components/

http://www.yeahzan.com/fa/facss.html 

上查找。

官網是這樣介紹的:

 

4.設置app標題。

這裏還顯示的是我們app的名字,怎麼修改呢?

涉及2個地方:

1> apps.py裏添加verbose_name

2>__init__.py添加默認配置。

之後我們就可以看到修改後的頁面了:

 

5.顯示數據詳情

設置 OptionClass 的 show_detail_fields .  

效果:

6.列表定時刷新

 設置 OptionClass 的 refresh_times 屬性即可. refresh_times 屬性是存有刷新時間的數組. xadmin 默認不開啓該插件.

效果如下:

7.書籤

數據列表頁面特定的數據過濾,排序等結果,添加的書籤還可以在首頁儀表盤中作爲小組件添加。

在Model  OptionClass中設定如下屬性:

 

  • show_bookmarks 屬性:

    設置是否開啓書籤功能, 默認爲 True

  • list_bookmarks 屬性:

    設置默認的書籤. 用戶可以在列表頁面添加自己的書籤, 你也可以實現設定好一些書籤, 使用實例如下:

 使用實例如下:

1

2

3

4

5

6

list_bookmarks = [{

    "title""存在郵箱",

    "query": {"user_email__contains"'@'},

    "order": ("-user_name",),

    "cols": ('user_name''user_email''user_mobile'),

    }]

  

效果:

 

8.圖表

在數據列表頁面,根據列表數據生成圖表,可以指定多個數據列,生成多個圖表。

 在Model OptionClass 中設定data_charts屬性,該屬性爲dict類型,key是圖表的標示名稱,value是圖表的具體設置屬性,示例:

1

2

3

4

5

data_charts = {

    "user_count": {'title': u"User Register Raise""x-field""year""y-field": ("cn",),

                   "order": ('year',)},

    # "avg_count": {'title': u"Avg Report", "x-field": "date", "y-field": ('avg_count',), "order": ('date',)}

    }

  

圖表的主要屬性爲:

title : 圖表的顯示名稱

x-field : 圖表的 X 軸數據列, 一般是日期, 時間等

y-field : 圖表的 Y 軸數據列, 該項是一個 list, 可以同時設定多個列, 這樣多個列的數據會在同一個圖表中顯示

order : 排序信息, 如果不寫則使用數據列表的排序

效果:

9.數據導出

如果想要導出Excel數據,需要安裝xlwt。

默認情況下,xadmin會提供Excel,CSV,XML,json四種格式的數據導出,可以通過設置OptionClass的list_export屬性來指定使用哪些導出格式(四種格式分別用xls,csv,xml,json表示)或是將list_export設置爲None來禁用數據導出功能。

 

10.過濾

在 Model OptionClass 中設置以下屬性:

  • list_filter 屬性:

    該屬性指定可以過濾的列的名字, 系統會自動生成搜索器

  • search_fields 屬性:

    屬性指定可以通過搜索框搜索的數據列的名字, 搜索框搜索使用的是模糊查找的方式, 一般用來搜素名字等字符串字段

  • free_query_filter 屬性:

    默認爲 True , 指定是否可以自由搜索. 如果開啓自由搜索, 用戶可以通過 url 參數來進行特定的搜索, 例如:

    http://xxx.com/xadmin/auth/user/?name__contains=tony

 

11. 設置只讀字段

 在使用xadmin的時候,ModelAdmin默認只有對於model的增刪改查,但是總是有些字段是不希望用戶來編輯的。而 readonly_fields 設置之後不管是admin還是其他用戶都會變成只讀,而我們通常只是想限制普通用戶。 這時我們就可以通過重寫 get_readonly_fields 方法來實現對特定用戶的只讀顯示。

1

2

3

4

5

6

7

8

9

class UserInfoAdmin():

 

    def get_readonly_fields(self):

        """  重新定義此函數,限制普通用戶所能修改的字段  """

        if self.user.is_superuser:

            self.readonly_fields = []

        return self.readonly_fields

     

    readonly_fields = ('user_email',)

  效果:

普通用戶:

admin:

 

 

參考: http://xadmin.readthedocs.io/en/docs-chinese/plugins.html 

         http://blog.csdn.net/lyysr/article/details/48735053

         http://www.cnblogs.com/shhnwangjian/p/6372503.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章