[PATCH 1/5] models: Make use of aggregates
Stephen Finucane
stephen at that.guru
Thu Oct 13 20:32:21 AEDT 2016
On 2016-10-12 23:13, Daniel Axtens wrote:
> Hi Stephen,
>
>> - if len(orders) > 0:
>> - max_order = orders[0]['order']
>> + if orders and orders['order__max']:
>> + max_order = orders['order__max'] + 1
>> else:
>> - max_order = 0
>> + max_order = 1
>>
> I'm not super happy with the change from max_order = 0 to max_order = 1
> etc here. That makes the variable represent the new order, not the
> current max order.
>
> Could you either:
> - change the name, or
> - revert back to using 0 and adding one at the end.
Good call. I'll do this.
>> - # see if the patch is already in this bundle
>> - if BundlePatch.objects.filter(bundle=self,
>> - patch=patch).count():
>> + if BundlePatch.objects.filter(bundle=self,
>> patch=patch).exists():
>> return
> I know you didn't change this line, but should this be an explicit
> return None, given that below an object is returned?
They mean the same thing, and the plain 'return' is the more Pythonic
approach in my experience.
>> - bp = BundlePatch.objects.create(bundle=self, patch=patch,
>> - order=max_order + 1)
>> - bp.save()
>> -
>> - return bp
>> + return BundlePatch.objects.create(bundle=self, patch=patch,
>> + order=max_order)
> Is this guaranteed to save? My memory of the specific semantics of
> create is a bit fuzzy.
Yup, it's a shortcut [1]
[1] http://stackoverflow.com/a/26672182/613428
> Apart from that, looks good to me.
Cheers. There are issues with the other patch so I'll fix the one thing
above in v2.
Stephen
More information about the Patchwork
mailing list