您现在的位置是: 网站首页 >Django >Django2.0.8+xadmin2实现在线学习网站 Django

【Django在线教育平台】22.xadmin的其它常见功能

admin2019年6月4日 14:24 Django | Html | JQuery 1277人已围观

Django2.0.8+xadmin2实现在线学习网站简介 Django2.0.8+xadmin2实现在线学习网站,课程、讲师、机构、用户收藏功能。GitHub地址:https://github.com/xyliurui/OnlineLearningPlatform ;Django版本:2.0.8

## list_editable列表页可编辑 在列表页可以直接编辑的 ```python class CourseAdmin(object): list_display = [ 'name', 'teacher', 'desc', 'students', 'fav_nums', 'click_nums', 'degree', 'learn_times', 'students'] search_fields = ['name', 'desc', 'detail', 'degree', 'students'] list_filter = [ 'name', 'desc', 'detail', 'degree', 'learn_times', 'students'] list_editable = ['degree', 'desc'] ``` ![BLOG_20190604_142459_91](/media/blog/images/2019/06/BLOG_20190604_142459_91.png "博客图集BLOG_20190604_142459_91.png") ## 自定义函数作为列显示 course/models.py中 ```python # 课程信息表 class Course(models.Model): # ..... class Meta: verbose_name = verbose_name_plural = '课程' def get_lesson_nums(self): # 获取课程章节数,如果章节模型中未定义关联名称(related_name)则直接使用字段名_set来获取 return self.lesson_set.all().count() get_lesson_nums.short_description = '章节数' def __str__(self): return self.name ``` course/adminx.py中,`list_display`中添加`get_lesson_nums` ```python # Course的admin管理器 class CourseAdmin(object): list_display = [ 'name', 'teacher', 'desc', 'students', 'fav_nums', 'click_nums', 'degree', 'learn_times', 'students', 'get_lesson_nums'] search_fields = ['name', 'desc', 'detail', 'degree', 'students'] list_filter = [ 'name', 'desc', 'detail', 'degree', 'learn_times', 'students'] list_editable = ['degree', 'desc'] ``` ![BLOG_20190604_142450_96](/media/blog/images/2019/06/BLOG_20190604_142450_96.png "博客图集BLOG_20190604_142450_96.png") ## 显示自定义的html代码 course/models.py中 ```python # 课程信息表 class Course(models.Model): # ..... class Meta: verbose_name = verbose_name_plural = '课程' def get_lesson_nums(self): # 获取课程章节数,如果章节模型中未定义关联名称(related_name)则直接使用字段名_set来获取 return self.lesson_set.all().count() get_lesson_nums.short_description = '章节数' def go_to(self): from django.utils.safestring import mark_safe # mark_safe后就不会转义 return mark_safe("<a href='http://blog.starmeow.cn/'>跳转</a>") go_to.short_description = '跳转' def __str__(self): return self.name ``` course/adminx.py中 ```python # Course的admin管理器 class CourseAdmin(object): list_display = [ 'name', 'teacher', 'desc', 'students', 'fav_nums', 'click_nums', 'degree', 'learn_times', 'students', 'get_lesson_nums', 'go_to'] search_fields = ['name', 'desc', 'detail', 'degree', 'students'] list_filter = [ 'name', 'desc', 'detail', 'degree', 'learn_times', 'students'] list_editable = ['degree', 'desc'] ``` ![BLOG_20190604_142441_66](/media/blog/images/2019/06/BLOG_20190604_142441_66.png "博客图集BLOG_20190604_142441_66.png") ## refresh定时刷新工具 course/adminx.py中 ```python # Course的admin管理器 class CourseAdmin(object): list_display = [ 'name', 'teacher', 'desc', 'students', 'fav_nums', 'click_nums', 'degree', 'learn_times', 'students', 'get_lesson_nums', 'go_to'] search_fields = ['name', 'desc', 'detail', 'degree', 'students'] list_filter = [ 'name', 'desc', 'detail', 'degree', 'learn_times', 'students'] list_editable = ['degree', 'desc'] refresh_time = [3, 5] ``` 后台效果: 可以选择3s或者5s自动刷新页面 ## 字段联动 应用场景:当添加一门课程的时候,希望课程机构里面的课程数 +1 重写xadmin的save_models方法 ```python # Course的admin管理器 class CourseAdmin(object): list_display = [ 'name', 'teacher', 'desc', 'students', 'fav_nums', 'click_nums', 'degree', 'learn_times', 'students', 'get_lesson_nums', 'go_to'] search_fields = ['name', 'desc', 'detail', 'degree', 'students'] list_filter = [ 'name', 'desc', 'detail', 'degree', 'learn_times', 'students'] list_editable = ['degree', 'desc'] refresh_time = [3, 5] 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() ``` # 增加富文本编辑器Ueditor 未完成

很赞哦! (0)

文章交流

  • emoji
0人参与,0条评论

当前用户

未登录,点击   登录

站点信息

  • 建站时间:网站已运行2075天
  • 系统信息:Linux
  • 后台程序:Python: 3.8.10
  • 网站框架:Django: 3.2.6
  • 文章统计:256 篇
  • 文章评论:60 条
  • 腾讯分析网站概况-腾讯分析
  • 百度统计网站概况-百度统计
  • 公众号:微信扫描二维码,关注我们
  • QQ群:QQ加群,下载网站的学习源码
返回
顶部
标题 换行 登录
网站