django xadmin 管理器常用顯示設(shè)置方式
課程管理器:
class CourseAdmin(object):
# 設(shè)置列表顯示字段
list_display = ['name', 'course_org', 'detail','degree','learn_times','students','fav_nums','image','click_nums','add_time']
# 設(shè)置列表查詢字段
search_field = ['name', 'course_org', 'detail','degree','learn_times','students','fav_nums','image','click_nums']
# 設(shè)置列表過(guò)濾字段
list_filter = ['name', 'course_org', 'detail','degree','learn_times','students','fav_nums','image','click_nums','add_time']
# 設(shè)置顯示圖標(biāo)
model_icon = 'fa fa-check-square'
# 設(shè)置字段可以直接在列表頁(yè)修改
list_editable=['desc','degree']
# 設(shè)置默認(rèn)排序
ordering=['-click_nums']
# 設(shè)置詳情頁(yè)面只讀顯示
readonly_fields=['fav_nums','click_nums']
# 設(shè)置詳情頁(yè)面不顯示某個(gè)字段
exclude=['add_time']
#自動(dòng)刷新列表頁(yè)面(秒數(shù))
refresh_times = [3,5]
def queryset(self):
# 重載queryset方法,進(jìn)行過(guò)濾
qs = super(CourseAdmin, self).queryset()
# 只顯示is_banner=True的課程
qs = qs.filter(is_banner=False)
return qs
def save_models(self):
# 在保存課程的時(shí)候統(tǒng)計(jì)課程機(jī)構(gòu)的課程數(shù)
# obj實(shí)際是一個(gè)course對(duì)象
obj = self.new_obj
# 對(duì)當(dāng)前課程進(jìn)行保存,否則統(tǒng)計(jì)的課程數(shù)會(huì)少一個(gè)
obj.save()
if obj.course_org is not None:
course_org = obj.course_org
course_org.course_nums = Course.objects.filter(course_org=course_org).count()
course_org.save()
CourseOrg是Course的一個(gè)外鍵
課程機(jī)構(gòu)管理器:
class CourseOrgAdmin(object): list_display = ['name', 'desc', 'click_num','fav_nums','image','address','city','add_time'] search_fields = ['name', 'desc', 'click_num','fav_nums','image','address','city'] list_filter = ['name', 'desc', 'click_num','fav_nums','image','address','city','add_time'] # 某一個(gè)model指向它時(shí),它是以ajax加載的方式來(lái)完成的,通過(guò)搜索來(lái)進(jìn)行添加某個(gè)字段,這樣可以避免數(shù)據(jù)量過(guò)大時(shí),把所有數(shù)據(jù)都加載進(jìn)來(lái) relfield_style='fk-ajax' class LessonInline(object): model = Lesson extra = 0 class CourseResourceInline(object): model = CourseResource extra = 0 #inlines 實(shí)現(xiàn)在添加course的同時(shí),在同頁(yè)面添加相應(yīng)的章節(jié)與課程資源 class CourseAdmin(object): inlines = [LessonInline,CourseResourceInline] #增加章節(jié)和課程資源
補(bǔ)充知識(shí):Django之定制屬于自己的admin
在admin.py中使用:admin.site.register(models.類(lèi)名)
# register中可以看出register中還有一個(gè)參數(shù)admin_class=None:
def register(self, model_or_iterable, admin_class=None, **options):
if not admin_class:
admin_class = ModelAdmin
register中可以看出register中還有一個(gè)參數(shù)admin_class=None,據(jù)此我們可以定制自己的admin
class UserAdmin(ModelAdmin):
list_display = ('name', 'email', 'ut')
admin.site.register(UserInfo, UserAdmin)
ModelAdmin中提供了大量的可定制功能,如:
list_display,列表時(shí),定制顯示的列。
list_display_links,列表時(shí),定制列可以點(diǎn)擊跳轉(zhuǎn)。
list_filter,列表時(shí),定制右側(cè)快速篩選。
list_select_related,列表時(shí),連表查詢是否自動(dòng)select_related。
action,列表時(shí),定制action中的操作。
定制HTML模板。
add_form_template = None
change_form_template = None
change_list_template = None
delete_confirmation_template = None
delete_selected_confirmation_template = None
object_history_template = None
…
以上這篇django xadmin 管理器常用顯示設(shè)置方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)簡(jiǎn)單生成驗(yàn)證碼功能【基于random模塊】
這篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單生成驗(yàn)證碼功能,結(jié)合實(shí)例形式分析了Python基于random模塊生成隨機(jī)字符串的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
Python將文字轉(zhuǎn)成語(yǔ)音并讀出來(lái)的實(shí)例詳解
今天小編就為大家分享一篇Python將文字轉(zhuǎn)成語(yǔ)音并讀出來(lái)的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
快速解決PyCharm無(wú)法引用matplotlib的問(wèn)題
今天小編就為大家分享一篇快速解決PyCharm無(wú)法引用matplotlib的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
python numpy中對(duì)ndarry按照index增刪改查
這篇文章主要介紹了python numpy中對(duì)ndarry按照index增刪改查,在numpy中的ndarry是一個(gè)數(shù)組,因此index就是位置下標(biāo),注意下標(biāo)是從0開(kāi)始,接下來(lái)一起進(jìn)入下面文章了解詳細(xì)內(nèi)容吧2022-02-02
python實(shí)現(xiàn)用戶登錄系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)用戶登錄系統(tǒng)的相關(guān)資料,感興趣的朋友可以參考一下2016-05-05

