【发布时间】:2026-02-05 05:25:02
【问题描述】:
我正在这里使用这些模型进行一个小项目,我正在尝试找出一种方法来获取与当前经过身份验证的用户关注的用户相关联的所有帖子。
但我不断得到:
不能将 QuerySet 用于“配置文件”:将 QuerySet 用于“用户”。
class Profile(models.Model):
user = models.OneToOneField(User)
isInstructor = models.BooleanField(default=False)
isTutor = models.BooleanField(default=False)
isStudent = models.BooleanField(default=False)
isAdmin = models.BooleanField(default=False)
following = models.ManyToManyField('self', related_name = "followers", blank=True, symmetrical=False)
profile_image = ImageField(upload_to=get_image_path, blank=True, null=True)
class Post(models.Model):
title = models.CharField(max_length=100)
topic = models.CharField(max_length=50)
description = models.CharField(max_length=1200)
poster = models.ForeignKey(User, related_name="posts")
likes = models.IntegerField(default=0)
created = models.DateTimeField(auto_now_add=True)
tags = models.ManyToManyField(Tag, blank=True, related_name="posts")
def __str__(self):
return self.title
这就是不断给我错误的原因。
current_user = Profile.objects.get(user = self.request.user)
Post.objects.filter(poster__in = current_user.following.all())
我四处搜索发现,每当您想按事物列表进行过滤时,我都必须使用 __in 运算符。但我不断收到同样的错误。任何帮助解释错误的含义以及我可以做些什么来解决它都将不胜感激。
【问题讨论】:
-
你试过
poster__profile__in吗? -
我想知道如果您将变量命名为
current_profile而不是current_user,错误是否会更清楚?
标签: django django-models