首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django框架ManyToManyField。如何在索引列表页中获得特定值?

问Django框架ManyToManyField。如何在索引列表页中获得特定值?
EN

Stack Overflow用户
提问于 2015-05-17 20:40:25
回答 2查看 398关注 0票数 1

我对Django框架有问题,一个博客文章可能有几个标签,我如何在我的索引页面中获得帖子列表的标签值?我只能在一个帖子的详细信息页面中得到一个帖子的标签。

代码语言:javascript
复制
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.title

views.py:

代码语言:javascript
复制
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})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-17 20:57:03

在模板中,您可以获得所有文章的标记:

代码语言:javascript
复制
{% for post in post_list %}
    {% for tag in post.tag.all %}
        Use your tags here
    {% endif %}
{% endif %}
票数 0
EN

Stack Overflow用户

发布于 2015-05-17 20:55:10

尝尝这个

代码语言:javascript
复制
tag_list = Tag.objects.filter(article__in=post_list)

tag_list是post_list中的所有标签。

或

代码语言:javascript
复制
tag_list = Tag.objects.filter(article__in=posts)

tag_list是posts中的所有标签。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30291915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档