在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
发表评论
共 0 条评论
暂无评论