我正在学习Django,并且已经完成了各种教程。我已经创建了一个基本的博客网站,但是想添加标签功能。它可以正常工作-我有带有指定标签的帖子,但现在我很难在这些帖子中列出这些标签。

blog / 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

关于python - 在Django中按ManyToMany关系列出标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47916030/

10-16 07:34