【发布时间】:2016-03-28 03:15:52
【问题描述】:
使用 django-filters,我有法官写的判断。模型大致是:
app1:models.py:
from app2.models import Judge
class Judgement(model.Models):
judges = models.ManyToManyField(Judge, related_name="judgements")
topic = models.TextField(help_text="The topic the judgement is about."
app2:models.py
class Judge(models.Models):
name = CharField(max_length=100)
race = CharField(max_length=5, choices=RACES)
我希望能够通过一个或另一个过滤判断或法官,所以我的过滤器应该是:
class JudgementFilter(filters.FilterSet):
# THIS DOESN'T WORK.
judges = RelatedFilter('JudgeFilter', name='judges')
class JudgeFilter(filters.FilterSet):
judgements = RelatedFilter(JudgementFilter, name='judgements')
如果这样可行,我可以向 API 查询由他们编写的判断的属性过滤的法官(例如:“所有法官都在写关于种族的判断”),或者我可以过滤由撰写它们的法官过滤的判决(例如,“所有由黑人法官撰写的判决”)。
不幸的是,这不起作用,我在尝试导入字符串值而不是其他内容时遇到错误。有没有办法做到这一点?
【问题讨论】:
-
您能在此处包含错误的回溯吗?另外,这是完整的代码吗?另外,
RelatedFilter是什么?我在 django-filter 中找不到对它的引用。 -
感谢@JoeyWilhelm 的帮助。我忘了提到这是 django-rest-framework-filters,而不是通常的 django-filters,但无论如何,我以最愚蠢的方式想出了它(见下文)。我发送了一个 PR 来调整文档,以使这些信息在未来更加突出。希望其他人能从中受益。
标签: django django-rest-framework django-filter