Ранжирование содержимого в Django для цикла

Я пытаюсь получить другую статью из моей базы данных из 10 статей, используя Django, чтобы быть случайным каждый раз, когда страница обновляется. Каждая статья состоит из четырех частей информации:

article.pubDate
article.author
article.heroImage
article.body

Я использовал цикл for {% for article in object_list|slice:":1" %} чтобы получить отдельную статью, но я не знаю, есть ли что-то вроде случайного или случайного, которое я могу использовать для цикла for.

list.html

{% for article in object_list|slice:":1" %} <div><code>&lt;h2&gt;Top 10 Video Games&lt;/h2&gt; &lt;p&gt;{{article.pubDate|date:"l, F j, Y" }}&lt;/p&gt; | {{article.author}} &lt;p&gt;{{article.body|truncatewords:"80"}}&lt;/p&gt;
{% endfor %}</code> </div>
1 ответ

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

пример

def myview(request): random_object = MyModel.objects.order_by('?').first() #or [0] if < django 1.6 #Send this in the context..

И теперь ссылайтесь на это в шаблоне, а не нарезайте весь список объектов.

Если вам нужен список объектов, просто выполните

random_list = MyModel.objects.order_by('?')

который будет загружать случайный список каждый раз.

Вот документация. Обратите внимание, что это может быть немного дорогостоящим.

licensed under cc by-sa 3.0 with attribution.