Я слабо помню, как это делалось раньше в учебниках в прошлом. Тем не менее, им не удалось выяснить, как именно в документах в настоящее время.Как отправить модели django в шаблон с дополнительными настраиваемыми полями?
Предположим, у нас была модель под названием Post. Эта модель имеет поле под названием timestamp. Однако, когда мы отправляем эту модель в шаблон, нам не нужны временные метки. Вместо этого нам нужен более популярный «возраст» (созданный X mins/hrs ago), который, к счастью, можно вывести из метки времени.
Вместо того, чтобы создавать новое поле для метки времени, а вместо использования пользовательских тегов шаблонов мы можем как-то добавить поле к модели временно, прежде чем отправить его нашему шаблону?
Ex.
# views.py
# Is the below code right? do I need to save()?
posts = Posts.objects.filter(...).filter(...)[:X]
for post in posts:
# Post does not have an age field, we are creating one
# temporarily before sending it to the template
post.age = some_function(post.timestamp)
return render_to_response(template, {'posts' : posts}, etc...)
спасибо.
Каковы последствия между @properties и django? Будет ли это рассматриваться как обычное поле? Мне не нужна колонка для возраста. Если столбец не создан, как именно обрабатываются эти свойства? И что еще более важно, в фактическом шаблоне, действительно ли свойство «возраст» доступно? –
Свойства никогда не становятся полем в таблице. Они обрабатываются самим классом модели. Доступны все атрибуты любого объекта, переданного в средство визуализации шаблонов. –
Спасибо. Если вы знаете, все еще любопытно, работает ли мой пример кода выше? Когда я это пробовал, он не работает, но я думаю, может быть, есть синтаксическая ошибка где-то ... –