Я понял подсказку из этого сообщения Настройка тегов в Django для фильтрации сообщений в модели Post
Я создал тег шаблона, но не знаю, как использовать его в своем html. У меня есть home.html, где я хочу показать три избранных сообщения. Я ищу что-то вроде {% для сообщения в Featured_post %}, а затем показываю подробности сообщения.
Кроме того, мне обязательно нужно создать Featured_posts.html, как в сообщении выше, потому что мне не нужна дополнительная страница для избранного сообщения. Я просто хочу, чтобы они добавили на мою домашнюю страницу в дополнение к другим вещам.
Что я пытаюсь сделать, так это создать тег шаблона, как показано в
from django import template
register = template.Library()
@register.inclusion_tag('featured_posts.html')
def featured_posts(count=3):
if Post.is_featured:
featured_posts = Post.published.order_by('-publish')[:count]
return {'featured_posts': featured_posts}
Проблема, с которой я столкнулся, заключается в том, что я не могу импортировать модель Post из модели. Моя структура каталогов примерно такая: - У меня есть приложение с именем posts. Внутри этого у меня есть модуль models.py и templatetags, а внутри тега шаблона у меня есть blog_tags.py.
Я не мог сделать относительный импорт.
А затем создал новую страницу Featured_posts.html, как показано ниже:
<ul>
{% for post in featured_posts %}
<li>{{ post.title }} </li>
{% endfor %}
</ul>
Теперь я хочу использовать его в своем home.html. Как я могу его использовать?
Изменить: - Как упоминалось выше, я мог загрузить модели, как показано ниже: -
from posts.models import Post
{% load blog_tags %} {% for post in featured_posts %}{{ post.title }}{% endfor %}
Тем не менее, я ничего не получаю в своем home.html. Одна из возможных причин, как я уже упоминал, заключается в том, что я не включил класс модели в тег. (Прочитайте выше проблему, с которой я столкнулся при этом) @IvanStarostin - person Udit Hari Vashisht   schedule 14.08.2018