Html 在Django中显示带有特定标记的页面

Html 在Django中显示带有特定标记的页面,html,django,wagtail,Html,Django,Wagtail,我正在使用引导标签窗格,我需要在每个窗格中显示带有特定标签的帖子,当然不需要重新加载页面 关于更多细节,我正在使用Django和Wagtail CMS我的基于模型文件的应用程序 编辑:将标记dict添加到上下文 models.py: class BlogIndex(Page): intro = RichTextField(blank=True) def get_context(self, request): base_tags = ['foo','boo','voo'

我正在使用引导标签窗格,我需要在每个窗格中显示带有特定标签的帖子,当然不需要重新加载页面 关于更多细节,我正在使用Django和Wagtail CMS我的基于模型文件的应用程序

编辑:将标记dict添加到上下文

models.py:

class BlogIndex(Page):
    intro = RichTextField(blank=True)
    def get_context(self, request):
      base_tags = ['foo','boo','voo']
      # Update context to include only published posts, ordered by reverse-chron
        context = super(BlogIndex, self).get_context(request)
        blogpages = self.get_children().live().order_by('-first_published_at')
        context['blogpages'] = blogpages
        context['base_tags'] = base_tags
        return context

class BlogPageTag(TaggedItemBase):
    content_object = ParentalKey('BlogPage', related_name='tagged_items')

class BlogPage(Page):
    #info
    tags = ClusterTaggableManager(through=BlogPageTag, blank=True)
    #contentpanel ....
注意:我正在使用taggit,但似乎我没有很好地处理它

blog_index.html

<div>
  <ul class="nav nav-tabs" role="tablist">
    {% for tag in base_tags %}
    <li role="presentation" ><a href="#{{tag}}" aria-controls="{{tag}}" 
      role="tab" data-toggle="tab">{{tag}}</a></li>
     {% ednfor %}
  </ul>

  <!-- Tab panes -->
  <div class="tab-content">
   {% for tag in base_tags %}
    <div role="tabpanel" class="tab-pane" id="{{tag}}">
    #this is what i'am thinking of 
    #for posts in blogpages :
    # if post tag == "{{tag}}":
    # show post
   </div>
  </div>
  </div>

    {%for base_tags%}
  • {%edn%}
{%for base_tags%} #这就是我所想的 #对于博客页面中的帖子: #如果post tag==“{{tag}}”: #展示柱
如果您有一些特定的标记,您可以通过在下面定义它们来在模板中调用它们

另一方面,如果标记将持续增加,那么最好为标记创建一个新模型

class PostListView(ListView):
    model = Post

    def get_context_data(self, **kwargs):
        context = super(PostListView, self).get_context_data(**kwargs)
        all_list = Post.objects.all()
        news_list = Post.objects.filter(tag='news')
        context = {
            'all_list': all_list,
            'news_list': news_list,
        }
        return context
编辑:

你可以这样表现

{% for object in news_list %}
 {{ object.title }}
 {{ object.timestamp }}
{% endfor %}

为什么不在
BlogIndex
类的
get\u context
方法中构建标记及其对应页面的字典?这将更有效,代码更少,然后通过
在模板中拆分,如果
语句我有一个,我喜欢用简单的方式编写它,首先要知道它是如何工作的,然后我会用for语句替换它,但我需要知道如何编写控制语句,以检查页面是否有特定的标记来显示它,我编辑了我的qs并添加了标签DICT编辑/更新我的答案以供您提问。您可以这样显示您的查询。