在Django中若想实现上下分表则需要重写 queryset 方法,显示同一张表,不同的显示字段。

在model 中需要继承原表, proxy 设置为 True。

class BannerCourse(Course):		# 继承原来表格
    class Meta:
        verbose_name = "***"
        verbose_name_plural = verbose_name
        proxy = True  # 不设置这个就会再生成一张表

然后在 adminx 中在将此模型进行 注册, 同原表 Course 一样的注册方式 ( xadmin 会视其为另一张表 )

此时的 重写 queryset 则为 is_banner = True 和原表进行上下分离 。

def queryset(self):
        qs = super(BannerCourseAdmin, self).queryset()
        qs = qs.filter(is_banner=True)		# 通过is_banner字段过滤表中的数据
        return qs