與過濾我期望返回指望基於基於我的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]