2013-10-12 1 views
1

Я работаю над тегом включения. В супер оболочке тег возвращает подходящий набор данных nevertheles, я не вижу шаблон включения, отображаемый на вызывающем шаблоне. Я могу только догадываться, что шаблон включения находится в неправильном месте. На данный момент шаблон находится в шаблоне MYPROJECT /, который является папкой ТОЛЬКО в TEMPLATE_DIRS. Пожалуйста, помогите мне выяснить, что я делаю неправильно здесь. ТИА!ярлык включения django не отображается

MyProject/Пресс-центр/templatetags/blog_extras.py ->http://pastebin.com/ssuLuVUq

from mezzanine.blog.models import BlogPost 
from django import template 

register = template.Library() 

@register.inclusion_tag('featured_posts.html') 
def featured_posts_list(): 
    """ 
    Return a set of blog posts whose featured_post=True. 
    """ 

    blog_posts = BlogPost.objects.published().select_related("user") 
    blog_posts = blog_posts.filter(featured_post=True) 

    # import pdb; pdb.set_trace() 
    return {'featured_posts_list': blog_posts} 

MyProject/шаблоны/featured_posts.html ->http://pastebin.com/svyveqq3

{% load blog_tags keyword_tags i18n future %} 

Meant to be the the infamous "Featured Posts" Section! 
{{ featured_posts_list.count }} 
<ul> 
    {% for featured_post in featured_posts_list %} 
     <li> {{ featured_post.title }} </li> 
    {% endfor %} 
</ul> 

MyProject/settings.py -> pastebin.com/Ed53qp5z

MYPROJECT/templates/blog/blog_post_list.html -> pastebin.com/tJedXjnT

+1

Попробуйте изменить> {% blog_tags нагрузки keyword_tags i18n будущее%} для этого> {% blog_extras нагрузки keyword_tags i18n будущих%} –

ответ

2

Как сказал @Victor Кастильо Торрес, вам нужно изменить имя тега, который вы загружаете, который исправит этот аспект вашего тега шаблона. Однако, несмотря на то, что они находятся в разных пространствах имен, я бы до сих пор изменить имя переменной контекста тег возвращает только для здравомыслия:

@register.inclusion_tag('featured_posts.html') 
def featured_posts_list(): 
    blog_posts = BlogPost.objects.published().filter(
     featured_post=True).select_related("user") 
    return {'blog_posts': blog_posts} 

Затем в шаблоне:

{{ blog_posts.count }} 
<ul> 
    {% for blog_post in blog_posts %} 
     <li>{{ blog_post.title }} </li> 
    {% endfor %} 
</ul> 

И, наконец, ваш главный шаблон:

{% load blog_extras keyword_tags i18n_future %} 
... 
{% featured_posts_list %} 
+0

В вашем основном шаблоне есть ошибка: '{% featured_blog_posts%}' должен быть '{% featured_posts_list%}'. – BigSmoke

+0

@BigSmoke Спасибо за улов. Я скорректировал образец. – Brandon