Python Django Queryset返回None,但内部查询工作正常

Python Django Queryset返回None,但内部查询工作正常,python,django,django-queryset,Python,Django,Django Queryset,我有一个查询集,它的行为有点奇怪。当我单独运行self.get()部分并打印结果(即pr)时,它会正确返回PriceRange对象。当我返回相同的值时,它是None class PriceRangeQuerySet(QuerySet): def get_price_range(self, price): try: pr = self.get( (Q(bottom__isnull = True) | Q(bot

我有一个查询集,它的行为有点奇怪。当我单独运行
self.get()
部分并打印结果(即
pr
)时,它会正确返回PriceRange对象。当我返回相同的值时,它是None

class PriceRangeQuerySet(QuerySet):
    def get_price_range(self, price):
        try:
            pr = self.get(
                    (Q(bottom__isnull = True) | Q(bottom__lt = price)) & \
                    (Q(top__isnull = True) | Q(top__gte = price))
                )
            return pr
        except PriceRange.DoesNotExist:
            mail_admins("Price range not found", 'Price: %d' % price)
        except PriceRange.MultipleObjectsReturned:
            mail_admins("Multiple matching price ranges found", 'Price: %d' % price)

真奇怪。get()无论如何都不应该返回None,对吗?是的,我很困惑。据我所知,get()并没有返回None。当我从函数中打印'pr'的值时,这很好,但是返回值的行为会以某种方式使其无效吗?