1. 程式人生 > >Django網站建設-xadmin進階開發

Django網站建設-xadmin進階開發

settings中的DEBUG值會影響到xadmin的使用

xadmin登出註冊方法

#xadmin登出註冊
from django.contrib.auth.models import User
xadmin.site.unregister(User)

許可權使用

1.每個單元有四個許可權:增刪改查,許可權功能放在了資料庫的auth_group_permission或auth_permission
2.每個沒有有使用者都能登陸後臺管理系統的,在資料庫的人員列表中利用is_superuser和is_staff來控制後臺管理系統的登陸許可權
3.如果僅僅是staff而不是superuser,若沒有配置許可權,則會出現“你無權修改任何東西”的提示
4.刪除資訊的話,會連指向該資訊的外來鍵也一併刪除
5.組的概念
這裡寫圖片描述

xadmin圖示更換

1.xadmin中使用了第三方css庫(font awesome),利用model_icon控制顯示圖示,具體圖示可以在該開源庫尋找
2.如果樣式檔案版本老舊了,可以進行替換,路徑在(ExtraApp\xadmin-master\xadmin\static\xadmin\vendor\font-awesome)中
3.在adminx中增加 model_icon = ‘fa fa-user-circle-o’ 欄位,後面欄位用於修改樣式

xadmin排序

在adminx中增加欄位ordering,規定預設排序方法

ordering = ['-code']    #排序

xadmin只讀

在adminx中增加欄位readonly_fields

readonly_fields = ['code','email']  #只讀

xadmin隱藏

在adminx中增加欄位exclude

exclude = ['send_time'] #隱藏狀態

xadmin一欄多model顯示,但是必須有外來鍵關係,新建類繫結有外來鍵關係的Lesson,然後在相應的管理介面利用inlines進行顯示(只能做一層巢狀)

class LessonInlines(object):
    model = Lesson
    extra = 0

class CourseAdmin(object):
    list_display = ['CourseName','degree','CourseType','Students','FavouriteNumber','ClikeNumber','AddTime']
    search_fields = ['CourseName','degree','CourseType','Students','FavouriteNumber','ClikeNumber']
    list_filter = ['CourseName','degree','CourseType','Students','FavouriteNumber','ClikeNumber','AddTime']
    inlines = [LessonInlines]

#利用 admin.site.register 進行註冊
xadmin.site.register(Course,CourseAdmin)

xadmin在列表頁直接編輯修改

list_editable = ['LessonName']

在xadmin中新增html程式碼

在model中增加方法,方法內增加htm程式碼,此方法也應該可以同樣向其他地方增加html程式碼
這裡寫圖片描述
增加之後的效果
這裡寫圖片描述

xadmin定時重新整理效果

refresh_times = [3,5]   #列表內的重新整理時間的選擇
![這裡寫圖片描述](https://img-blog.csdn.net/20180221203849128?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM1NzA1Mzkw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)