1. 程式人生 > 程式設計 >django xadmin 管理器常用顯示設定方式

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','click_nums']
  # 設定列表過濾欄位
  list_filter = ['name','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','address','city','add_time']
  search_fields = ['name','city']
  list_filter = ['name','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 管理器常用顯示設定方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。