溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

django中xadmin管理器常用顯示的設(shè)置方式有哪些

發(fā)布時(shí)間:2021-05-10 12:59:01 來(lái)源:億速云 閱讀:219 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了django中xadmin管理器常用顯示的設(shè)置方式有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

課程管理器:

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.類名)

# 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

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“django中xadmin管理器常用顯示的設(shè)置方式有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI