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

2024-04-29 02:27:51 发布

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

我有一个查询集,它的行为有点奇怪。当我单独运行self.get()部分并打印结果(即pr)时,它会正确地返回pricelange对象。当我返回相同的值时,它是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)

Tags: selftruegettoprangemailprprice