Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django中执行此左连接?_Python_Django_Django Rest Framework - Fatal编程技术网

Python 如何在django中执行此左连接?

Python 如何在django中执行此左连接?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我在django有以下两个模型,它们代表一个帖子和该帖子的类似内容: class Post(models.Model): title = CharField(max_length=200) content = TextField() num_comments = PositiveIntegerField(default=0) class Like(models.Model): LIKE_CHOICES = [('L', 'Like'), ('D', 'Dis

我在django有以下两个模型,它们代表一个帖子和该帖子的类似内容:

class Post(models.Model):
    title = CharField(max_length=200)
    content = TextField()
    num_comments = PositiveIntegerField(default=0)



class Like(models.Model):
    LIKE_CHOICES = [('L', 'Like'), ('D', 'Dislike')]

    user = ForeignKey(User, on_delete=models.CASCADE)
    post = ForeignKey(Post, on_delete=models.CASCADE)
    state = CharField(default='L', max_length=1, choices=LIKE_CHOICES)
    created_at = DateTimeField(auto_now_add=True)
    updated_at = DateTimeField(auto_now=True)
如何在我的视图中执行一个连接,以获取所有帖子,然后执行连接以获取发送每个帖子请求的用户的相似状态(如果用户不喜欢或不喜欢,则无)


我能想到的唯一方法可能是使用
select_related()
,但我不知道如何在我的案例中使用它,因为
Post
没有类似
的引用

我不确定我是否理解正确,但你不能通过预取与Post.objects.all()相关的Post.objects.all()预取与Post.objects相关的('like\u set')来实现这一点吗Post实际上在like模型中有一个like模型的引用,在like模型中定义一个外键来Post,该外键也可以接受一个相关的\u名称默认值,就像您的模型一样__set@amitbisht这将如何获得用户的相似状态?如果您尝试这一行Post.objects.all().prefetch\u related('like\u set'))如果你想为某个特定的用户筛选,它会得到所有的帖子,你可以这样做:post.objects.filter(like\u set\u user\u id=userid)。prefetch\u related('like\u set')我从你那里得到一个错误答案:related字段得到了无效的查找:set\u user\u id