[英]graphene-django returns wrong filtered data
我有一個 DjangoObjectType 和一個 Filterset class 用於我的查詢。 我已經為我的 DjangoObjectType class 添加了一個過濾器,如下所示。
class MyFilter(FilterSet):
quantity = NumberFilter(method='filter_quantity')
def filter_quantity(self, queryset, name, value):
a_data = ClassA.objects.filter(quantity__gte=value)
a_data_keys = [data.key_number for data in a_data]
return queryset.filter(key__in=a_data_keys)
當我在沒有任何過濾器的情況下運行查詢時,它可以正常工作並返回所有數據。 但是,當我使用quantity: 1
過濾器運行它時,它返回的數據只有quantity: 1
,與 2 相同。它不返回equal or greater
。 我有一些數據, quantity: 3
。 當我使用此過濾器和 3 運行查詢時,它只返回quantity: 4
。 我真的很困惑這有什么問題。 當我在返回前打印查詢過濾器結果時,它似乎是正確的。 但是在graphql查詢結果dict中,是錯誤的。 你知道我該如何解決這個奇怪的問題嗎?
很難說,因為這是所涉及代碼的有限片段,而且看起來沒有錯。 有沒有可能這個過濾器沒有被石墨烯應用? 你在使用DjangoFilterConnection
字段嗎? 也許您需要如下的解決方法?
class Query(graphene.ObjectType):
filtered_stuff = DjangoFilterConnectionField(StuffType)
def resolve_filtered_stuff(self, info, **filters):
return MyFilter(filters).qs
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.