您好,登錄后才能下訂單哦!
這篇文章主要介紹了django中xadmin管理器常用顯示的設置方式有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
課程管理器:
class CourseAdmin(object): # 設置列表顯示字段 list_display = ['name', 'course_org', 'detail','degree','learn_times','students','fav_nums','image','click_nums','add_time'] # 設置列表查詢字段 search_field = ['name', 'course_org', 'detail','degree','learn_times','students','fav_nums','image','click_nums'] # 設置列表過濾字段 list_filter = ['name', 'course_org', 'detail','degree','learn_times','students','fav_nums','image','click_nums','add_time'] # 設置顯示圖標 model_icon = 'fa fa-check-square' # 設置字段可以直接在列表頁修改 list_editable=['desc','degree'] # 設置默認排序 ordering=['-click_nums'] # 設置詳情頁面只讀顯示 readonly_fields=['fav_nums','click_nums'] # 設置詳情頁面不顯示某個字段 exclude=['add_time'] #自動刷新列表頁面(秒數) refresh_times = [3,5] def queryset(self): # 重載queryset方法,進行過濾 qs = super(CourseAdmin, self).queryset() # 只顯示is_banner=True的課程 qs = qs.filter(is_banner=False) return qs def save_models(self): # 在保存課程的時候統計課程機構的課程數 # obj實際是一個course對象 obj = self.new_obj # 對當前課程進行保存,否則統計的課程數會少一個 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的一個外鍵
課程機構管理器:
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'] # 某一個model指向它時,它是以ajax加載的方式來完成的,通過搜索來進行添加某個字段,這樣可以避免數據量過大時,把所有數據都加載進來 relfield_style='fk-ajax' class LessonInline(object): model = Lesson extra = 0 class CourseResourceInline(object): model = CourseResource extra = 0 #inlines 實現在添加course的同時,在同頁面添加相應的章節與課程資源 class CourseAdmin(object): inlines = [LessonInline,CourseResourceInline] #增加章節和課程資源
補充知識:Django之定制屬于自己的admin
在admin.py中使用:admin.site.register(models.類名)
# register中可以看出register中還有一個參數admin_class=None: def register(self, model_or_iterable, admin_class=None, **options): if not admin_class: admin_class = ModelAdmin
register中可以看出register中還有一個參數admin_class=None,據此我們可以定制自己的admin
class UserAdmin(ModelAdmin): list_display = ('name', 'email', 'ut') admin.site.register(UserInfo, UserAdmin)
ModelAdmin中提供了大量的可定制功能,如:
list_display,列表時,定制顯示的列。
list_display_links,列表時,定制列可以點擊跳轉。
list_filter,列表時,定制右側快速篩選。
list_select_related,列表時,連表查詢是否自動select_related。
action,列表時,定制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管理器常用顯示的設置方式有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。