如何根据模型类上返回布尔值的方法的结果来过滤查询集?

2024-02-13

作为我的模型类之一的成员函数,我有一个is_visible(self, user)返回布尔值的方法。根据定义,它需要请求用户(DjangoUser模型)作为输入。

我希望能够根据对此方法的响应来过滤查询集。如何使用此函数作为查询集过滤器?

对于上下文,这是我的is_visible执行:

    def is_visible(self, user):
        if self.status.status_internal == "open":
            return True
        if self.owner == user:
            return true

        participations = Participation.objects.filter(event__id=self.id, participant__id=user.id)
        if len(participations) > 0:
            return True

        if self.status.status_internal == "invite":
            return True

        return False

您不能使用 python 函数来过滤查询集。您必须“复制”此代码并使用过滤您的对象Q 对象 https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据模型类上返回布尔值的方法的结果来过滤查询集? 的相关文章

随机推荐

  • 同一包中的 @Around @Aspect 只能与 @DependsOn 一起使用

    请参阅下面的更新 我有一个 Spring Boot 应用程序 我接受 TCP IP 连接 public MyClass implements InitializingBean Override public void afterProper
  • 如何从 TFS 构建过程将参数传递给 PowerShell 脚本?

    我创建了一个小 PowerShell 脚本来更改 web config 中的连接字符串 param string webConfigPath string connectionStringName string connectionStri
  • NG-bootstrap 模态组件无提供程序错误

    我是 Angular 2 的 ng bootstrap 库 我特别关注的是 组件作为内容 https ng bootstrap github io components modal 我尝试将示例代码合并到我的项目中 但收效甚微 我从浏览器调
  • 如何在Javascript中延迟setInterval?

    我现在在 JavaScript 中反复遇到一个奇怪的问题 我似乎无法拖延setInterval longer 发生情况的一个小例子 var loop var count loop setInterval start 30 function
  • Gedmo Tree getPath 错误:节点与此存储库不相关 500 内部服务器错误 - InvalidArgumentException

    我收到错误 Node is not related to this repository 500 Internal Server Error InvalidArgumentException 更新1 如果我设置树并不重要具有特征的存储库 h
  • 将 MediaPicker 添加到常规站点设置

    我当前正在进行的项目正在利用租户站点 对于每个站点 我们希望能够通过修改其设置 在管理页面上 设置 gt 常规 来更改整个租户站点的徽标 我通过以下方式向站点设置添加了两个文本字段这个有据可查的教程 http docs orchardpro
  • 使用 ListView 的拖放功能来创建库存 UI

    我想使用 ListView 为我的游戏创建一个库存 UI 其中可以通过在关卡中拖放项目来将其从库存中删除 如果某个物品没有正确放置 仍在物品栏内 则应将其放回拖动前的位置 我有以下代码 但即使在查看了之后我也不知道如何实现我想要的拖放示例
  • Scala 协方差和下类型界解释

    我正在尝试了解使用下界创建新的不可变类型的方法的协方差 class ImmutableArray T item T existing List T Nil private val items item existing def append
  • Python Opencv自定义控制(增加/减少)视频播放速度

    我正在编写一个程序来控制视频播放速度为自定义速率 有办法实现这一点吗 应该添加什么代码来控制播放速度 import cv2 cap cv2 VideoCapture video mp4 while cap isOpened ret fram
  • MySQL UPSERT 没有 ON DUPLICATE KEY

    我想要一个UPSERT UPDATE如果存在 则插入 在具有以下字段的 MySQL 表上 CREATE TABLE item uid int 11 NOT NULL AUTO INCREMENT timestamp int 11 NOT N
  • 系统.data.sqlite.net 4

    System Data SQLite 是否有 Net 4 版本 目前我收到此错误 混合模式程序集是针对运行时版本 v2 0 50727 构建的 如果没有附加配置信息 则无法在 4 0 运行时中加载 需要什么 附加配置信息 或者是否有我可以使
  • 如何在Chrome扩展中获取剪贴板数据?

    我很难找到有关如何在 Chrome 扩展程序中添加 Ctrl C 监听器 获取剪贴板数据 然后写回剪贴板的最新信息 我发现的所有旧代码都是针对现已弃用的旧版本 基本上你可以使用操作剪贴板document execCommand paste
  • Spring中@Configuration和@Component有什么区别?

    ComponentScan使用两者创建bean Configuration and Component 交换时这两个注释都可以正常工作 那有什么区别呢 Configuration 表示一个类声明一个或多个 Bean 方法并且可以被Sprin
  • 启动作业中的“启动进程-NoNewWindow”?

    我在启动作业中使用启动进程时遇到问题 特别是在使用时 NoNewWindow 例如这个测试代码 Start Job scriptblock Start Process cmd NoNewWindow Wait ArgumentList c
  • 扫描代码注释并转换为标准格式的工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个 C 项目 该项目有许多不同的作者和许多不同的文档风格 我是以下的忠实粉丝doxygen
  • 通过 Nginx、Django 提供 206 字节范围服务

    我让 Nginx 为我的静态 Django 文件提供服务 该文件在 Gunicorn 上运行 我正在尝试提供 MP3 文件并让它们具有头部 206 以便 Apple 接受它们用于播客 目前 音频文件位于我的静态目录中 并直接通过 Nginx
  • 受保护的构造函数有哪些实际用途?

    为什么有人会声明构造函数受保护 我知道构造函数被声明为私有 目的是不允许它们在堆栈上创建 当一个类是 旨在作为 抽象类时 受保护的构造函数是完全正确的 在这种情况下 您不希望从类实例化对象 而只想使用它来继承 还有其他用例 例如某些构造参数
  • 使用没有表单的视图创建 django 对象

    我想知道如何能够根据用户将要访问的 URL 在数据库中创建对象 例如 他们将转到 schedule addbid 1 这将在表中创建一个对象 其中包含投标的所有者 他们投标的时间表以及投标是否已完成 这是迄今为止我的投标模型的内容 clas
  • 列表中的枚举值

    我有一个枚举类 例如 public enum USERTYPE Permanant 1 Temporary 2 在我的业务对象中 我只是将这个枚举声明为 private List
  • 如何根据模型类上返回布尔值的方法的结果来过滤查询集?

    作为我的模型类之一的成员函数 我有一个is visible self user 返回布尔值的方法 根据定义 它需要请求用户 DjangoUser模型 作为输入 我希望能够根据对此方法的响应来过滤查询集 如何使用此函数作为查询集过滤器 对于上