与过滤我期望返回指望基于基于我的QuerySet
只有一个值目前我们使用最多的聚集,以确保只有一个返回值是
lease_dict = LeaseTenant.objects.filter(tenat_id=self.id, is_active = True).aggregate(Max('id'))
从查询集过滤条件只有一个返回
从来没有问题,但它不是最好的方式,因为如果突然间会有一些系统中的错误,更多的价值将存在最大值将隐藏问题。
什么是更好的选择?
与过滤我期望返回指望基于基于我的QuerySet
只有一个值目前我们使用最多的聚集,以确保只有一个返回值是
lease_dict = LeaseTenant.objects.filter(tenat_id=self.id, is_active = True).aggregate(Max('id'))
从查询集过滤条件只有一个返回
从来没有问题,但它不是最好的方式,因为如果突然间会有一些系统中的错误,更多的价值将存在最大值将隐藏问题。
什么是更好的选择?
你可以简单地使用get强迫一个结果:)
lease_dict = LeaseTenant.objects.get(tenat_id=self.id, is_active=True)
文档:https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-a-single-object-with-get
如果不返回任何结果,将提出一个LeaseTenant.object.DoesNotExist
。如果多个结果返回,将提出一个MultipleObjectsReturned
其更好地使用过滤器而不是GET lease_dict = LeaseTenant.objects.filter(tenat_id = self.id,IS_ACTIVE = TRUE)[0]