13-4 自定义列表返回数据,同一个model注册两个管理器


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 不然数据重复































































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值