django xadmin 管理器常用显示设置方式
课程管理器:
classCourseAdmin(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='fafa-check-square' #设置字段可以直接在列表页修改 list_editable=['desc','degree'] #设置默认排序 ordering=['-click_nums'] #设置详情页面只读显示 readonly_fields=['fav_nums','click_nums'] #设置详情页面不显示某个字段 exclude=['add_time'] #自动刷新列表页面(秒数) refresh_times=[3,5] defqueryset(self): #重载queryset方法,进行过滤 qs=super(CourseAdmin,self).queryset() #只显示is_banner=True的课程 qs=qs.filter(is_banner=False) returnqs defsave_models(self): #在保存课程的时候统计课程机构的课程数 #obj实际是一个course对象 obj=self.new_obj #对当前课程进行保存,否则统计的课程数会少一个 obj.save() ifobj.course_orgisnotNone: course_org=obj.course_org course_org.course_nums=Course.objects.filter(course_org=course_org).count() course_org.save()
CourseOrg是Course的一个外键
课程机构管理器:
classCourseOrgAdmin(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' classLessonInline(object): model=Lesson extra=0 classCourseResourceInline(object): model=CourseResource extra=0 #inlines实现在添加course的同时,在同页面添加相应的章节与课程资源 classCourseAdmin(object): inlines=[LessonInline,CourseResourceInline]#增加章节和课程资源
补充知识:Django之定制属于自己的admin
在admin.py中使用:admin.site.register(models.类名)
#register中可以看出register中还有一个参数admin_class=None: defregister(self,model_or_iterable,admin_class=None,**options): ifnotadmin_class: admin_class=ModelAdmin
register中可以看出register中还有一个参数admin_class=None,据此我们可以定制自己的admin
classUserAdmin(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
…
以上这篇djangoxadmin管理器常用显示设置方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。