簡體   English   中英

graphene-django 返回錯誤的過濾數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM