首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理活动视频与非活动视频

处理活动视频与非活动视频
EN

Stack Overflow用户
提问于 2011-08-16 20:52:39
回答 2查看 154关注 0票数 0

已正确转码的视频标记为活动,而已停用或正在处理的视频标记为非活动。由此,我有两个问题:

1)在数据库中显示它的最佳方式是什么?它是一个布尔型字段active,还是我遗漏的其他东西?

2)处理视频搜索等问题的最佳方式是什么,因为不活跃的视频永远不会出现?有没有一种简单的方法可以在模型定义中设置一个查询,以便只显示活动的视频?

任何关于处理这种活动与非活动情况的最佳方法的解释都将非常有帮助。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-16 20:56:41

处理此问题的典型方法是在Video模型上创建一个布尔值字段,然后创建一个新的管理器,仅返回活动视频。您甚至可以将此管理器设为默认管理器,以便除非您明确要求不活动的视频,否则将使用此管理器。

这是一个草图:

代码语言:javascript
复制
class InactiveManager(models.Manager):
    def get_queryset(self):
        return super(InactiveManager, self).get_queryset().filter(active=False)

class ActiveManager(models.Manager):
    def get_queryset(self):
        return super(ActiveManager, self).get_queryset().filter(active=True)

class Video(models.Model):
    title = models.CharField(max_length=200)
    active = models.BooleanField()

    # Use all_videos to get absolutely everything.
    all_videos = models.Manager()
    objects = ActiveManager()
    inactive = InactiveManager()
票数 3
EN

Stack Overflow用户

发布于 2020-12-16 20:59:50

作为Ned的答案,但使用'get_queryset‘而不是'get_query_set’。

我花了两个小时才弄明白'get_query_set‘不起作用。

不幸的是,我不能将此作为对Ned的回答的评论,因为我没有50个名誉点。

代码语言:javascript
复制
class InactiveManager(models.Manager):
    def get_queryset(self):
        return super(InactiveManager, self).get_queryset().filter(active=False)

class ActiveManager(models.Manager):
    def get_queryset(self):
        return super(ActiveManager, self).get_queryset().filter(active=True)

class Video(models.Model):
    title = models.CharField(max_length=200)
    active = models.BooleanField()

    # Use all_videos to get absolutely everything.
    all_videos = models.Manager()
    objects = ActiveManager()
    inactive = InactiveManager()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7078480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档