#html #css #django #list #templates
#HTML #css #джанго #Список #шаблоны
Вопрос:
У меня есть список ссылок, сгенерированных в моих представлениях, теперь я хочу перенаправить свою страницу на случайную ссылку в этом списке. Есть ли способ выбрать случайный элемент из списка в шаблоне django? Я не хочу перенаправлять представление на другое представление, где происходит генерация, затем перенаправление и т.д., потому что каждое нажатие кнопки приведет к генерации … вместо этого просто выберите случайный элемент из списка, чтобы это было очень быстро .. Не удалось взломать его через Google
шаблон
<div class="container-fluid center">
<a class="btn waves-effect waves-light" href={{ random_link }}>Redirect me to a cute pic
<i class="large material-icons left">favorite</i>
<i class="large material-icons right">favorite_border</i>
</a>
</div>
views.py
reddit = praw.Reddit(client_id='L685-1uBBrLbKQ', client_secret='_Fk5nW1L2h3VRR6BVnkusMh43QQ_gg',
user_agent='Shivam Anand')
top_natureismetal = reddit.subreddit('natureismetal').top(limit=100)
# generator only generated once for loop run
nature_links = []
for post in top_natureismetal:
nature_links.append(post.url)
import random
random_link = random.choice(nature_links) #the part i want html to do...
Комментарии:
1. Если вы передаете список в шаблон, то вы можете использовать тег шаблона «random» docs.djangoproject.com/en/3.1/ref/templates/builtins/#random
2. В чем причина НЕ делать случайный выбор в представлении? Потому что использование случайного тега шаблона будет иметь тот же результат с точки зрения пользователя: в HTML-файле будет (во время рендеринга случайно сгенерированная) ссылка.
3. Единственная причина, по которой я вижу, чтобы не отправлять ни одной ссылки на html, заключается в том, что генерация случайной ссылки должна быть переделана во время взаимодействия пользователя с вашей страницей, и перенаправление происходит только один раз, когда пользователь «доволен» представленным случайным выбором и нажимает кнопку. Но тогда это программирование на стороне клиента с помощью js. Может быть, я неправильно понимаю вашу точку зрения.
4. @Lemon. py огромное спасибо, что сработало! любопытно: есть ли способ менять ссылку каждый раз при нажатии кнопки? вместо того, чтобы снова загружать веб-страницу.
5. @Razenstein спасибо за ваш комментарий! я подумал: после загрузки веб-страницы не должно быть временной задержки при нажатии на ссылку кнопки, что, как я думал, будет иметь место, если есть другой слой views, который вычисляет случайную ссылку после нажатия кнопки, хотя это может позаботиться о случайной ссылке при каждом нажатии кнопки об обновлении страницы ..