在 django 过滤器后端传递模型的所有字段

2024-02-22

有什么办法可以让我们pass all the fields of a model to django filter backend无需显式传递 search_fields 和 filter_fields 中的字段名称

我制作了一个通用视图集,它序列化传递给它的模型的所有字段,但我在对其应用通用过滤器时遇到问题

for eg,

class UserListView(generics.ListAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    filter_backends = (filters.SearchFilter,)
    search_fields = ('username', 'email')

在上面的代码中,我们显式地传递了search_fields但在我的代码中,我无法显式传递字段,因为每次都可能传递不同的模型。


我认为这样做并不明智,因为某些字段可能会泄露敏感信息,但您可以尝试传递模型中的所有字段:

class UserListView(generics.ListAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    filter_backends = (filters.SearchFilter,)
    search_fields = [f.name for f in User._meta.get_fields()]

这是文档 https://docs.djangoproject.com/en/1.10/ref/models/meta/#django.db.models.options.Options.get_fields用于使用get_fields:

Options.get_fields(include_parents=True, include_hidden=False)[来源]

返回与模型关联的字段元组。get_fields()接受两个参数,可用于控制哪些字段 回到:

  • 包含父母 True默认情况下。递归地包含在父级上定义的字段 类。如果设置为False, get_fields()只会搜索字段 直接在当前模型上声明。直接来自模型的字段 从抽象模型或代理类继承被认为是 本地的,而不是父级的。
  • 包含隐藏 False默认情况下。如果设置为True, get_fields()将要 包括用于支持其他字段功能的字段。这 还将包括任何具有related_name(例如ManyToManyField, or ForeignKey)以“+”开头。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 django 过滤器后端传递模型的所有字段 的相关文章

随机推荐

  • css3 关键帧动画的 SASS(不是 SCSS)语法

    有没有办法在SASS中写入关键帧 我发现的每个例子实际上都是 SCSS 即使它说它是 SASS 需要明确的是 我的意思是没有大括号的 以下是如何在 Sass 语法中实现 css 关键帧 keyframes name of animation
  • Java 9 takeWhile 和 dropWhile 读取并跳过某些行

    我有一个文本文件 其中包含多个报告 每个报告都以文字 REPORT ID 开头 并具有特定值 即 ABCD 对于简单的情况 我只想提取那些具有值 ABCD 的报告的数据 考虑到复杂性 我只想提取 TAG1 值 第二行 为 100037535
  • 如何让 Python 自动创建字典中缺失的键/值对? [复制]

    这个问题在这里已经有答案了 我正在创建一个多层深度的字典结构 我正在尝试做类似以下的事情 dict dict a b True 目前 上述操作失败 因为键 a 不存在 目前我必须检查每个嵌套级别并手动插入一个空字典 是否有某种类型的语法糖能
  • 启动第一个 Django 项目错误

    我的计算机运行 Ubuntu 12 04 我按照本教程开始使用 Django http blog stannard net au 2010 12 11 installing django with apache and mod wsgi o
  • Ffmpeg 在 Electron 沙盒应用程序中中止

    我有一个 Electron 应用程序 发布在 Mac AppStore 上 并且是沙盒的 我正在尝试添加一个新功能 可以动态编码 解码视频 这样我就可以在 Electron 上下文中流式传输更多视频格式 我在用着流利的 ffmpeg htt
  • 哪些标准 C++ 功能可用于查询机器/操作系统架构?

    用于查询运行程序的硬件或操作系统功能的属性的标准 C 功能和实用程序是什么 例如 std thread hardware concurrency 给出机器支持的线程数 但是 如何检测计算机有多少 RAM 或者进程正在使用多少 RAM 或者某
  • 如何从 n 个元素中找到 k 排列的索引?

    我知道 对于一个k 排列p大小的k 从构建n元素 有 P n k n n k 可能的k 排列 例如 k 2 n 4 l 1 2 3 4 P n k 4 4 2 12 1 2 2 1 3 1 4 1 1 3 2 3 3 2 4 2 1 4 2
  • .BOT 文件未部署到 Azure Bot Service v4

    将 Azure Bot 服务与 C Bot Builder SDK v4 v4 0 7 2018 年 9 月发布的 GA 版本 结合使用 我正在使用BOT file https github com Microsoft botbuilder
  • Keras:无法导入名称 np_utils [重复]

    这个问题在这里已经有答案了 我正在使用 Python 2 7 和 Jupyter Notebook 进行一些基本的机器学习 我正在按照本教程进行操作 http machinelearningmastery com regression tu
  • 在 laravel 中找不到用于 sqlite 的 pdo 异常驱动程序

    当我跑步时php artisan migrate我得到的命令 PDOException 找不到驱动程序 我将默认数据库设置为 sqlite 并检查是否有用于 sqlite 的 pdo 驱动程序php i命令 我无法理解我的问题 你的系统缺失
  • 猫鼬枚举数

    我需要获取模式中字段的枚举值 我有架构 let adminSchema new Schema login type String unique true required true minlength 5 maxlength 300 has
  • 使用套接字 fd 在手机之间传输实时视频

    我是android编程的新手 发现自己陷入了困境 我一直在研究各种从手机到手机流式传输实时视频的方法 似乎它大部分功能都可用 当然除了最重要的部分 播放流 它似乎是从一部手机发送流 但第二部手机无法播放流 这是游戏方的代码 public c
  • 为什么选择排序不稳定?

    这可能是微不足道的 但我不明白为什么默认实现选择排序 http en wikipedia org wiki Selection sort不稳定 在每次迭代中 您都会找到剩余数组中的最小元素 当找到这个最小值时 您可以选择找到的第一个最小值
  • ElasticSearch NEST:通过ElasticClient通过指定json创建索引

    我们允许客户在创建索引时定义自定义分析器 我们更愿意在 json 中指定这一点 以便通过底层 ElasticSearch 文档提供最大的灵活性和可理解性 我想使用 json 字符串中定义的分析器 映射器等的任意描述来创建索引 使用感觉 我的
  • 优化器如何决定合并连接和散列连接?

    数据库系统概念介绍了实现连接操作的几种方法 其中两个是合并连接和散列连接 我想知道优化器何时决定使用合并连接并且 什么时候进行哈希连接 特别是 从https stackoverflow com a 1114288 156458 https
  • Jquery 文件上传语法错误:JSON.parse:JSON 数据后出现意外的非空白字符

    我想使用产品 但上传图片时我看到错误 SyntaxError JSON parse JSON 数据后出现意外的非空白字符 script directory Folder2 directory Jquery file upload funct
  • 复制slave.jar时Jenkins Slave权限被拒绝

    我的权限被拒绝 但不知道为什么 从我的詹金斯大师那里 我可以使用 ssh rsa key 运行以下命令 scp var cache jenkins war WEB INF slave jar jenkins
  • 如何在 R 中编写生成 Pig Latin 的函数

    我正在尝试编写一个函数 该函数接受一个字符串作为参数并用 Pig Latin 打印该字符串 在 PigLatin 中 你将单词的第一个字母移到末尾 然后添加 ay 例如 这很有趣 gt histay asway unfay 我刚刚开始学习
  • 使用 php 析构函数适合显示 HTML 吗?

    如果实现了一个通过构造页面并调用各种方法来为页面构建 HTML 的类 那么在析构函数中定义该类的显示 回显部分是否合适 而不是有一个明确的Class displayHTML 方法 具有echo this gt html在析构函数中以及每当您
  • 在 django 过滤器后端传递模型的所有字段

    有什么办法可以让我们pass all the fields of a model to django filter backend无需显式传递 search fields 和 filter fields 中的字段名称 我制作了一个通用视图集