我在尝试将查询集过滤器与模型一起使用时遇到问题。 它是群组中帖子的控件。
这是我的代码:
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)
我正在尝试从标题为“title”的组中获取所有帖子:
queryset_list = Control.objects.filter(group__control="title")
我的模特可能是对的,我是新手。 有什么帮助吗?
答案 0 :(得分:1)
也许是拼写错误?
queryset_list = Control.objects.filter(group__title="title")
# ^^^^^^
posts_title = queryset_list.values('post__title')
答案 1 :(得分:1)
首先,您应在ManyToManyField
(docs)上添加Group
:
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()