使用外键跨多个模型过滤djangfilter

2024-05-13 20:58:18 发布

您现在位置:Python中文网/ 问答频道 /正文

问题

我正在使用django-filter包筛选我的结果。假设我的模型如下所示:

class Material(models.Model):
    name = models.CharField(...)

class Test1(models.Model):
    id
    materialTested = models.ForeignKey(...)
    TestResult = models.DecimalField(...)
class Test2(models.Model):
    id
    materialTested = models.ForeignKey(...)
    TestResult = models.DecimalField(...)

我尝试使用Test1和Test2的结果使用包进行过滤。这些测试是它们自己的模型的原因是同一个测试(或没有)的倍数可以针对相同的材料运行

当前进度 我目前已将其设置为通过定义以下筛选器使用单个测试进行筛选:

^{pr2}$

目标

目标是能够过滤两个测试的结果(将材料返回列表)。例如,Meta的字段部分如下所示:

fields={'TestResult':['gte','lte'], 'TestResult__fromTest2':['gte','lte']}

我知道这样做行不通,因为Test2在任何地方都没有提到,而且我很确定过滤器的第二部分写得不正确。感谢任何帮助!在


Tags: 模型id目标modelmodelsclass材料test1
1条回答
网友
1楼 · 发布于 2024-05-13 20:58:18

今天晚些时候我找到了答案,如果有人感兴趣的话。在

正确的语法是使用Material模型创建过滤器,例如:

class MaterialFilter(django_filters.FilterSet):
    ....

在过滤器Meta中使用:

^{pr2}$

相关问题 更多 >