[英]Listing tags by ManyToMany relationship in django
我正在學習 Django,並且已經學習了各種教程。 我已經創建了一個基本的博客站點,但想添加標記功能。 它有效 - 我有分配了標簽的帖子,但我現在正在努力在帖子中列出這些標簽。
博客/models.py:
class Post(models.Model):
title = models.CharField(max_length=50)
text = models.CharField(max_length=1000)
pub_date = models.DateTimeField('date published')
author = models.CharField(max_length=30)
mail = models.EmailField()
class Tag(models.Model):
name = models.CharField(max_length=15)
posts = models.ManyToManyField(Post, related_name="tags")
我知道我需要類似的東西: Tag.objects.filter()
但你能指導我如何只列出與特定帖子相關的內容嗎? 我嘗試了各種組合,但沒有一個效果很好......
沒有辦法實現這一點。
獲取標簽,查找產生它的所有帖子。
try:
tag = Tag.objects.get(name="#blawBlaw")
posts_of_that_tag = tag.posts.all()
except Tag.DoesNotExist:
pass
其他方式:獲取帖子並找到它的標簽
try:
p = Post.Objects.get(id=1)
tags = p.tag_set.all();
except Post.DoesNotExist:
pass
我的就是這樣解決的。 與@Sagar 略有不同,我想獲取與我的博客文章相關的標簽。
我不使用tags_set,而是使用復數形式的tag,tags。
# object containing title, body etc
post = Post.objects.get(slug=slug)
# get all the tags
p = Post.objects.get(id=post.id)
tags = p.tags.all()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.