Как получить последние 3 созданных объекта из базы данных? - PullRequest
1 голос
/ 25 мая 2019

Я хочу отобразить 3 последних созданных объекта на моем сайте. Я понятия не имею, что делать. Мне просто нужно знать, как заказать модель в соответствии с созданной датой. И получить доступ к 1-му, 2-му и 3-му пункту заказанного набора.

Я почти уверен, что это не сработает. Это из views.py

latest = Upcoming_Events.objects.all().order_by('date')[:3]

event1 = latest.get(pk=1)

event2 = latest.get(pk=2)

event3 = latest.get(pk=3)

Я продолжаю получать

'Невозможно отфильтровать запрос после взятия фрагмента'

Ответы [ 2 ]

3 голосов
/ 25 мая 2019

Вы можете сделать ORM вот так

latest = Upcoming_Events.objects.all().order_by('-date')[:3]

Тогда в шаблоне

{% for event in latest %}
    {{ event.date }}
{% endfor %}

Обновление: В соответствии с комментарием попробуйте это

event1 = latest[0]
event2 = latest[1]
event3 = latest[2]
1 голос
/ 25 мая 2019

сделать нисходящий порядок на pk (id)

latest = Upcoming_Events.objects.all().values().order_by('-id')[:3]

тогда:

event1 = latest[0]

UPDATE

Обратите внимание, что вы должны использовать .values().

Если вы не используете его, SQL-запрос не будет содержать LIMIT 3

...