我对Django框架有问题,一个博客文章可能有几个标签,我如何在我的索引页面中获得帖子列表的标签值?我只能在一个帖子的详细信息页面中得到一个帖子的标签。
from django.db import models
# Create your models here.
class Tag(models.Model):
tag_name = models.CharField(max_length=64)
def __unicode__(self):
return self.tag_name
class Article(models.Model):
title = models.CharField(max_length=100)
category = models.CharField(max_length=50)
tag = models.ManyToManyField(Tag, blank=True)
publish_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now=True)
content = models.TextField()
def __unicode__(self):
return self.titleviews.py:
def home(request):
posts = Article.objects.all().order_by('-publish_time')
paginator = Paginator(posts, 4)
page = request.GET.get('page')
try:
post_list = paginator.page(page)
except PageNotAnInteger:
post_list = paginator.page(1)
except EmptyPage:
post_list = paginator.paginator(paginator.num_pages)
return render(request, 'home.html', {'post_list': post_list})发布于 2015-05-17 20:57:03
在模板中,您可以获得所有文章的标记:
{% for post in post_list %}
{% for tag in post.tag.all %}
Use your tags here
{% endif %}
{% endif %}发布于 2015-05-17 20:55:10
尝尝这个
tag_list = Tag.objects.filter(article__in=post_list)tag_list是post_list中的所有标签。
或
tag_list = Tag.objects.filter(article__in=posts)tag_list是posts中的所有标签。
https://stackoverflow.com/questions/30291915
复制相似问题