class LessonInline(object):
model = Lesson
extra = 0
然后在另一个里面
inlines = [LessonInline]
效果:在添加 课程 的时候,就可以直接在最下面添加 章节 信息
设置两个嵌套
这样添加课程的时候,就可以同时添加 章节 和 课程资源 的信息
===============================================
继承Course
class BannerCourse(Course):
class Meta:
verbose_name = "轮播课程"
verbose_name_plural = verbose_name
# 否则会再生成一张表,此时具有model的功能
proxy = True
import 进来
新建一个Admin:
BannerCourseAdmin
class CourseAdmin(object):
list_display = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students', 'add_time']
search_fields = ['name', 'desc', 'detail', 'degree', 'students', 'learn_times']
list_filter = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students', 'add_time']
ordering = ['-students']
# 只读设置
readonly_fields = ['students']
# 设置字段不显示
exclude = ['degree']
inlines = [LessonInline, CourseResourceInline]
class BannerCourseAdmin(object):
list_display = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students', 'add_time']
search_fields = ['name', 'desc', 'detail', 'degree', 'students', 'learn_times']
list_filter = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students', 'add_time']
ordering = ['-students']
# 只读设置
readonly_fields = ['students']
# 设置字段不显示
exclude = ['degree']
inlines = [LessonInline, CourseResourceInline]
然后再关联注册:
xadmin.site.register(BannerCourse, BannerCourseAdmin)
此时一个表有两个管理器了
现在 课程 和 轮播课程 的列表是相同的数据,需要配置
def queryset(self):
qs = super(BannerCourseAdmin, self).queryset()
qs = qs.filter(is_banner=True)
return qs
然后在CourseAdmin配置is_banner=False 不然数据重复