【发布时间】:2018-03-16 21:08:56
【问题描述】:
我有一个序列化程序,一切正常。
ModelClassASerializer((serializers.ModelSerializer)):
.....
status = serializers.SerializerMethodField()
def get_status(self, obj):
....
status = ModelB.objects.get(id=obj.id).status
....
return status
class Meta:
model = ModelClassA
fields = (...)
但如果我想根据该状态进行过滤,我不能。我正在使用 django_filters.rest_framework.FilterSet 进行过滤。模型之间没有关系。
进行过滤的最佳方法是什么?
【问题讨论】:
-
您的模型如何关联?可以给我看看吗,或许source可以帮到你。
-
对不起,忘了说两个模型之间没有任何关系。更新了我的问题。已经检查了文档,但找不到答案。
-
您提供了一个代码示例,但不清楚您正在尝试/想要做什么。特别是为什么要在序列化程序中进行过滤。过滤通常适用于视图中的数据集,为什么在您的情况下有所不同?
-
示例:现在,当我查询 localhost:8000/someurl/ 时,我得到了所有记录。感谢序列化程序中的 get_status 函数,我也得到了状态。我想查询 localhost:8000/someurl/?status=1 并获取所有 status=1 的记录。但由于我们没有 fk,我无法让过滤变得如此简单。
-
使用 DRF 创建自定义通用过滤这里是django-rest-framework.org/api-guide/filtering/…
标签: django django-rest-framework django-filter django-filters