# Create your models here. classTag(models.Model): tag_name = models.CharField(max_length=64)
def__unicode__(self): return self.tag_name
classArticle(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
一篇文章有多个标签,Article 表中 tag 字段是 Tag 表的多对多外键,我要在文章列表做首页的地方怎么把每篇文章的标签全列出来我就不明白了,在 views.py 里面能通过 id 先把这篇文章取出来,再把对应的 tag 取出来,两个参数列表传到模板中进行渲染:post = Article.objects.get(id=str(id)) tags = post.tag.all(),这个倒是能理解。
{% raw %} <span>标签:       {% for tag in post.tag.all %} <aclass="label label-primary"href="">{{ tag }}</a></span> {% endfor %} {% endraw %}
最开始已经把每篇文章通过 for 循环放在 post 里面了,想读单独一篇的文章的标签就再用 for 循环 for tag in post.tag.all。