Django-filter 按相关字段过滤

2023-11-21

我有两张桌子。

class Writer(models.Model)
    name = model.CharField()
    ...

class Article(models.Model)
    name = model.CharField()
    writer = model.ForeignKey('Writer', related_name="relationship") 
    ...

我想构建一些获取作者列表的 API 端点,但这应该可以通过文章 id 进行过滤。 我正在使用 django-filter。所以:

class WriterViewSet(viewsets.ReadOnlyModelViewSet):
   filter_backend = [filters.djangoFilterBackend],
   filter_class = WriterFilter


class WriteFilter(django_filters.rest_framework.FilterSet):
....

所以我关心的是,如何定义 WriteFilter 来按文章过滤 Writer?


class WriteFilter(django_filters.rest_framework.FilterSet):
    article = django_filters.CharFilter(name='relationship__name', lookup_expr='contains')

    class Meta:
        model = WriterFilter
        fields = ['article']


你的网址将是这样的,
/api/wtiter/list/?article=somearticlename


UPDATE-1

since django-filter 2.0, the name参数改为field_name.

因此过滤器类别将是,

class WriteFilter(django_filters.rest_framework.FilterSet):
    article = django_filters.CharFilter(field_name='relationship__name', lookup_expr='contains')

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

Django-filter 按相关字段过滤 的相关文章

  • 如何设置 ndb keyProperty

    我在理解实体和键在 Google App Engine NDB 中的工作方式时遇到一些困难 我有一个post实体和一个user实体 我该如何设置user key on post to user 到目前为止 在交互式控制台中 我有以下内容 f
  • 如何在 django 中获取复选框值?

    tr td td tr
  • Heroku 上的 Django 应用程序在一段时间后删除对象

    我编写了一个简单的 Django 问答论坛应用程序并将其部署在 Heroku 上 该网站的本地版本运行良好 但是 生产版本不会将问题 答案等存储超过几个小时 我决定坚持使用 Django 附带的 sqlite3 我预计该网站不会有太多流量
  • Django populate() 不可重入

    当我尝试在生产环境中加载 Django 应用程序时 我不断收到此消息 我尝试了所有的 stackoverflow 答案 但没有任何解决办法 任何其他想法 我使用的是 Django 1 5 2 和 Apache Traceback most
  • Django 中的自定义默认文件存储

    我正在尝试使用自定义文件存储 https bitbucket org david django storages wiki S3Storage 我按照说明进行操作并将其放入我的 settings py DEFAULT FILE STORAG
  • Django模型继承、过滤模型

    给出以下模型 不要介意仅用于说明的 TextFields class Base models Model field1 models TextField class Meta abstract True class Child1 Base
  • 如何在 Django 1.9.6 中创建超级用户帐户

    我正在读一本关于 Django 的书 Sanjeev Jaiswal 和 Ratan Kumar 所著的 学习 Django Web 开发 但这本书是基于 Django 的早期版本 1 9 版本之前 的 为了用表填充数据库 本书使用了syn
  • Django Autocomplete Light - “无法加载结果”

    我在一个小型应用程序上使用 Django autocomplete light 用户界面似乎可以正常工作 我可以从一些可见的值中进行选择 当我在框中输入一个或多个字母时 问题就出现了 通常它应该过滤 选择结果 相反 我收到错误 无法加载结果
  • 从 Django 模板中的 URL 访问 kwargs

    我可以在 Django 模板中访问命名参数的值 从 URL 吗 就像我可以访问的值this name下面来自 django 模板 url r area P
  • 为什么在使用 form_class 时 UpdateView 需要定义 model/queryset/get_queryset 而不是 CreateView?

    奇迹般有效 MyCreateView CreateView template name my template name form class MyModelForm success url success 但以下情况则不然 MyUpdat
  • 如何在 django 模板中转义 {{ 或 }} ?

    姜戈款待 var 作为其模板中的一些变量 我该如何逃脱 var or or 这样 django 不会将其视为变量 p some text p 打印出来应该一模一样 Django 1 5 介绍 verbatim https docs djan
  • 如何在Django中使用CreateView进行多个文件的上传?

    请帮我 我是 Django 新手 无法理解以下内容 我有 CreateView 的子类用于创建评论 我想创建一个项目 人们可以在其中留下评论并将文件 图像 附加到该评论中 人们应该可以在一张带有文本注释的表格上附加尽可能多的图像 我在互联网
  • 缩短 Python 导入?

    我正在开发一个 Django 项目 我们就这样称呼它吧myproject 现在我的代码到处都是myproject folder file function 无论如何 我是否可以消除为所有导入添加前缀的需要myproject 如果我想稍后重命
  • 让 django 不插入某些字段

    我有一个针对 postgresql 数据库表的 Django 模型 我希望 Django 在对象创建期间不要插入 field 3 作为 DB 应该填写的时间戳字段 class AbcModel model id models AutoFie
  • Django Rest Framework - 注册后返回身份验证令牌

    我想在用户注册成功后以 json 形式返回身份验证令牌 我怎样才能做到这一点 对于注册我使用以下 序列化器 py class UserSerializer ModelSerializer class Meta model User fiel
  • Django-Haystack 和 Solr 8.5.1

    Django haystack 是否适用于最新的 Solr 更新 8 5 1 另外我如何设置我的 Django 博客项目 CentOS 8 Solr 8 7 Django Oscar 3 0 1 安装Java yum update yum
  • 在 Django 中使用下拉表单过滤 ListView 的最佳方法

    我正在尝试使用下拉表单根据用户过滤 ListView 模型 py class Post models Model author models ForeignKey auth User verbose name Post Author vie
  • Django:503 服务不可用

    Related 我对 Python 及其框架完全陌生 在学习了一些 Python 基础知识后 我只是尝试一下 Django Problem 现在我正在尝试在第一次安装后运行 Django 服务器 服务器运行没有任何错误 但是当我尝试访问该网
  • 如何获得会议邀请以与 Gmail/Google Apps 正确集成?

    我正在使用 Django 和 python icalendar 生成 iCalendar 文件 它们在 Outlook 2010 中正确显示为会议邀请 在 Gmail Google Apps 中 我只看到一封空白电子邮件 这是怎么回事 我的
  • 访问 django for 循环中的元素

    我有一个 Django 模板 其中包含以下代码 该模板创建多个按钮并尝试通过单击 在同一按钮上 删除 隐藏其中一个按钮 for h in helicopters div class btn group div

随机推荐

  • 将单个 Excel 工作表另存为 CSV

    我需要解析 Excel 工作表 现在 我将每个单独的工作表另存为 csv 效果非常好 我使用 OpenCSV 来解析文件等 但创建这些 csv 文件很痛苦 在 Excel 中将单个工作表另存为 csv 的最简单 最快捷的方法是什么 我假设某
  • 使用 Shadow DOM 有哪些缺点?

    在教程中我只看到了 Shadow DOM 的优点 但也应该有缺点 在哪些情况下我们应该避免使用 Shadow DOM Shadow DOM 功能既可以被视为优点 也可以被视为缺点 风格隔离如果您想要的话 这是一个好处 但如果用户想从全局 C
  • 从预处理器中的常量中删除强制转换

    背景 在微控制器代码中 我使用生产商提供的库 其中定义了许多常量 如果我的一些常量 与微控制器外部的组件共享 与git subtree 和微控制器常数 例如 该库定义 ifdef SOME PARTICULAR MODEL define F
  • SSRS 2008 R2 - SSRS 2012 - ReportViewer:在 Safari/Chrome 中报告,但在 Firefox/Internet Explorer 8 中工作正常...为什么?

    我有一些简单的报告SSRS 2008 R2 但它们根本不会在 Safari 或 Chrome 中显示 根据微软的在线图书 这些浏览器的支持方式有限 但是 数据 加载 时钟完成后我看不到任何内容 页面顶部的参数栏和面包屑导航部分都在那里 此外
  • 仍然对 Python 中的可变默认参数值“陷阱”感到困惑[重复]

    这个问题在这里已经有答案了 我知道不应该使用可变的默认参数值在 Python 中 有一些例外 因为该值仅在定义函数时计算和存储一次 而不是在以后每次调用函数时计算和存储 我对此的理解是这样的 使用下面的例子 请原谅我的不精确的语言 因为我只
  • 仅将 dropShadow 添加到网格窗格 JavaFx 2.2 的边框

    只想将阴影添加到网格窗格的边框而不是内部子元素 here is the image of screen showing the effect 使用 StackPane 并将 GridPane 放入其中 使用 CSS 设置 StackPane
  • 动态改变colors.xml的值来改变android应用程序的外观和感觉

    问题 我正在尝试动态更改 Android 应用程序的外观和感觉 例如 应用程序启动并从服务器获取一组值 这些值是通常位于colors xml 中的元素 我正在寻找的是一种动态更改colors xml 中的元素并使用从服务器接收到的这些新值进
  • 如何使用 Delphi 中的当前区域设置格式化整数

    var i integer i 1234567 鉴于上述情况 我希望字符串 1 234 567 作为输出 假设英国区域设置 IntToStr 只是给我 1234567 我确信有一个单行线可以解决这个问题 但我找不到它 尝试格式化功能 Lab
  • 如何保留嵌入小部件的样式?

    如何制作外部PHPwidget页面有自己的CSS 问题是 当外部页面是included 它受到样式表的影响host page 包含的页面实际上是一个注释 小部件 带有自己的 css 文件 大约 30 行 不多 并且高度和宽度的灵活性是必须具
  • 如何将Jupyter笔记本上的环境切换为新笔记本?

    我有一个具有各种环境的实例 有些笔记本与不同的环境兼容 例如notebook1 用于 MXNet notebook2 用于 Tensorflow 从notebook1移动到notebook2时如何跳转到新环境 我尝试这样做 但这不适用于 J
  • 是否可以使用与 std::set 中包含的类型不同的元素来执行搜索和删除?

    假设我有以下内容 struct MetadataThingy void actual thingy int some metadata int more metadata bool operator lt MetadataThingy co
  • @media print 的 CSS 第 x 页(共 y 页)

    我将在这个问题的前言中说 我知道这个问题之前已经被问过 但我能找到的所有答案似乎都引用了一个不再有效的过时的解决方案 至少在 Firefox 56 64 位 中 过时的方法是 曾经有一个自动实例化的 CSS 计数器 名为pages 因此从该
  • 向每个团队成员发送成功自动化构建的通知

    我们只是将 Visual Studio Team Services 集成为我们的新工作流程 并在提交到 master 的基础上设置自动构建 目前 承诺掌握并发起新构建的个人将在构建失败或成功时收到通知电子邮件 我们以为我们都会收到通知 但事
  • MVVM WPF ComboBox SelectedItem 绑定未在数据网格内激活

    在数据网格内操作时 我一直在努力保存组合框选定的值 当我制作没有数据网格的测试解决方案时 一切正常 上下文是与相关国家的人名 国家 地区存储在 xml 文件中 这是初始视图的快照 您可以在此处看到PersonList xaml 的重要部分
  • Java 包与 C++ 库

    In Java 有一种叫做package Does library in C 代表相同的含义 特别是在包含相关子句和使用受保护成员等术语中 Thanks 一个事物有不同的维度packageJava 中的意思 作为一个区分内部类名称与其他包中
  • 设计模式名称:从类级别获取类

    特别是在单元测试中 我们使用这种 设计模式 我称之为 从类级别获取类 框架测试 py class FrameWorkHttpClient object class FrameWorkTestCase unittest TestCase Su
  • “长度不能小于零。”在空白行上

    即使我注释掉发生错误的行 我仍然收到上述错误消息 知道是什么原因造成的吗 我尝试用测试值重写这些行 但仍然遇到相同的错误 这在调试模式下工作得很好 只有在部署中才会出现 原始代码 Line 21 string domain username
  • html5 画布中的运动 jpeg

    我正在尝试将运动 jpeg mjpeg 流 来自网络摄像头 包装到 html5 画布中 我知道 Safari 和 Chrome 对 mjpeg 具有本机支持 因此我可以将其放入img使其发挥作用 我想将它包裹在画布中的原因是我想对其进行一些
  • 设置对话框进度

    我有一个异步任务 在执行任务时不会添加百分比 它始终保持在 0 0 100 这是我的代码 private class getAppInfo extends AsyncTask
  • Django-filter 按相关字段过滤

    我有两张桌子 class Writer models Model name model CharField class Article models Model name model CharField writer model Forei