Django xadmin的使用 (二)


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

 

1.頁面顯示中文

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

# 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類,具體代碼如下:

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 中添加:

    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 屬性:

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

 使用實例如下:

    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是圖表的具體設置屬性,示例:

    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 方法來實現對特定用戶的只讀顯示。

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.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM