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è)置列表過濾字段 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è)置字段可以直接在列表頁修改 list_editable=[’desc’,’degree’] # 設(shè)置默認(rèn)排序 ordering=[’-click_nums’] # 設(shè)置詳情頁面只讀顯示 readonly_fields=[’fav_nums’,’click_nums’] # 設(shè)置詳情頁面不顯示某個(gè)字段 exclude=[’add_time’] #自動(dòng)刷新列表頁面(秒數(shù)) refresh_times = [3,5] def queryset(self): # 重載queryset方法,進(jìn)行過濾 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對象 obj = self.new_obj # 對當(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加載的方式來完成的,通過搜索來進(jìn)行添加某個(gè)字段,這樣可以避免數(shù)據(jù)量過大時(shí),把所有數(shù)據(jù)都加載進(jìn)來 relfield_style=’fk-ajax’class LessonInline(object): model = Lesson extra = 0class CourseResourceInline(object): model = CourseResource extra = 0#inlines 實(shí)現(xiàn)在添加course的同時(shí),在同頁面添加相應(yīng)的章節(jié)與課程資源class CourseAdmin(object): inlines = [LessonInline,CourseResourceInline] #增加章節(jié)和課程資源
補(bǔ)充知識(shí):Django之定制屬于自己的admin
在admin.py中使用:admin.site.register(models.類名)
# 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è)置方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Gitlab CI-CD自動(dòng)化部署SpringBoot項(xiàng)目的方法步驟2. 淺談SpringMVC jsp前臺(tái)獲取參數(shù)的方式 EL表達(dá)式3. ajax請求添加自定義header參數(shù)代碼4. JS sort方法基于數(shù)組對象屬性值排序5. 使用Python和百度語音識(shí)別生成視頻字幕的實(shí)現(xiàn)6. ASP中解決“對象關(guān)閉時(shí),不允許操作。”的詭異問題……7. JAVA上加密算法的實(shí)現(xiàn)用例8. 基于javascript處理二進(jìn)制圖片流過程詳解9. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)10. Django-migrate報(bào)錯(cuò)問題解決方案
