Django的查询集过滤器外键(django queryset filter foreignkey)

2019-10-29 02:21发布

我在尝试使用查询集过滤器与我的模型的问题。 它是在团体职位控制。

这是我的代码:

class Post(models.Model):
    title = models.CharField(max_length=120)
    content = models.TextField()


class Group(models.Model):
    title = models.CharField(max_length=200)
    url = models.URLField(unique=True)


class Control(models.Model):
    published = models.DateField(auto_now=False, auto_now_add=False)

    group = models.ForeignKey(Group, on_delete=models.CASCADE)
    post = models.ForeignKey(Post, on_delete=models.CASCADE)

我试图从标题为“标题”一组获得的所有帖子:

queryset_list = Control.objects.filter(group__control="title")

我的模型可能尼特是正确的,我是新来这。 任何帮助吗?

Answer 1:

也许是笔误的错误?

queryset_list = Control.objects.filter(group__title="title")
#                                             ^^^^^^
posts_title = queryset_list.values('post__title')


Answer 2:

首先,你应该添加一个ManyToManyFieldGroup ( 文档 ):

class Group(models.Model):
    title = models.CharField(max_length=200)
    url = models.URLField(unique=True)

    posts = models.ManyToManyField('Post', through='Control')

其他两种模式保持不变,但现在你可以随便抓一组帖子:

posts = Group.objects.get(title='some title').posts.all()


文章来源: django queryset filter foreignkey