自定义查询集mongoengin中的筛选器问题

2024-09-30 18:31:37 发布

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

我有一个MongoEngine模型Place

class Place(Document):
    is_favorite = fields.BooleanField(default=False)
    name = fields.StringField(max_length=150)
    price_tier = fields.IntField(min_value=1, max_value=3)

    meta = {
    'queryset_class': AwesomerQuerySet
    }

我用的是MongoEngine的Custom QuerySets


class AwesomerQuerySet(QuerySet):
    def getNinePlaces1(self):
        #the below line returns empty queryset
        qSet = self.filter(price_tier=2)[:9]
        return qSet

    def getNinePlaces2(self):
        #the below line returns proper queryset
        qSet = self.filter(is_favorite=True)[:9]
        return qSet

输出:

print(Place.objects.getNinePlaces1())
>> []

print(Place.objects.getNinePlaces2())
>> [<Place: Place object>, <Place: Place object>, <Place: Place object>, <Place: Place object>, <Place: Place object>, <Place: Place object>, <Place: Place object>, <Place: Place object>, <Place: Place object>]

问题: 我不知道为什么Place.objects.getNinePlaces1()返回一个空集。请帮助我理解

如果我不清楚就告诉我。谢谢


Tags: selffieldsobjectsobjectisplacepricefavorite