2013-10-12 93 views
1

我正在處理一個包含標記。在超級外殼中,標籤返回適當的數據集nevertheles,我沒有看到包含模板在調用模板上呈現。我只能猜測包含模板位於錯誤的位置。截至目前,模板位於TEMPRATE_DIRS中的唯一文件夾MYPROJECT/templates。請幫我弄清楚我在這裏做錯了什麼。 TIA!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

正如@維克多卡斯蒂略託雷斯說,你需要改變你正在加載的標籤的名稱,這將修復你的模板標籤的方面。然而,儘管它們在不同的命名空間,我仍然會更改上下文變量的名稱,您的標記只返回了理智:

@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