Django, ¿Cuál es la mejor y más rápida manera de obtener solo el primer y último elemento de algo, Customer.objects.xxxx, tal filtro, value_list o …
Probablemente la forma más pythonica:
myset = Customer.objects.filter().order_by( ) first, last = myset[0], myset.reverse()[0]
¿Cuál es la mejor y más rápida manera de obtener primero y último?
Dejanos ver.
customers = Customer.objects.filter(**conditions) first = customers.order_by('id')[0] last = customers.latest('id')
Por supuesto, si puede realizar una consulta SQL para hacer esto, podría ejecutarse utilizando el método raw()
.
query = "" Customer.objects.raw(query)
No estoy totalmente familiarizado con el funcionamiento interno de django, pero asumiría que la forma más rápida de hacerlo sería:
elements = Customer.objects.filter() first_element = elements[0] last_element = elements[-1]