django queryset筛选器foreignkey
我在尝试在我的模型中使用queryset筛选器时遇到问题。 这是一个控制组中的帖子。django queryset筛选器foreignkey
这是我的代码:
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")
我的模型可能尼特是正确的,我新的这个。 有什么帮助吗?
也许它是错字?
queryset_list = Control.objects.filter(group__title="title")
# ^^^^^^
posts_title = queryset_list.values('post__title')
首先,你应该添加一个ManyToManyField
上Group
(docs):
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()
我得到这个错误:文件“
假设您将Group移动到Control下面?将'Group'放在引号中:'group = models.ForeignKey('Group',on_delete = models.CASCADE)' –
呃,它也不起作用。这是我的代码(没有manytomany关系):https://bitbucket.org/renanbs/social-posts。 –
为什么你有'Control'模型? Post可以发布在一个组中,而不是另一个发布? –
是的,我可能会为特定的群组设置不同的帖子。 –