Django, Какой самый лучший и быстрый способ получить только первый и последний элемент чего-то, Customer.objects.xxxx - PullRequest
6 голосов
/ 08 сентября 2010

Django, Какой самый лучший, самый быстрый способ получить только первый и последний элемент чего-то, Customer.objects.xxxx такой фильтр, value_list или ...

Ответы [ 3 ]

10 голосов
/ 08 сентября 2010

Вероятно, наиболее питонический путь:

myset = Customer.objects.filter(<something>).order_by(<something>)
first, last = myset[0], myset.reverse()[0]
4 голосов
/ 08 сентября 2010

Какой самый лучший и быстрый способ получить только первое и последнее

Давайте посмотрим.

customers = Customer.objects.filter(**conditions)
first = customers.order_by('id')[0]
last = customers.latest('id')

Конечно, , если , вы можете создать SQL-запрос, чтобы выполнить его, его можно выполнить с помощью метода raw().

query = "<your query to get first and last>"
Customer.objects.raw(query)
0 голосов
/ 08 сентября 2010

Я не совсем знаком с внутренней работой django, но я бы предположил, что самый быстрый способ сделать это будет:

elements = Customer.objects.filter(<something>)
first_element = elements[0]
last_element = elements[-1]
...