django - 值错误 : Cannot use Queryset for "": Use a Queryset for ""

标签 django django-models

我正在这里使用这些模型开展一个小项目,我正在尝试找出一种方法来获取一组与当前经过身份验证的用户正在关注的用户关联的所有帖子。

但我不断得到:

Cannot use QuerySet for "Profile": Use a QuerySet for "User".

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 运算符。但我不断收到同样的错误。非常感谢任何帮助解释错误的含义以及我可以做些什么来解决它。

最佳答案

也许试试这样的东西,

Post.objects.filter(poster__id__in=current_user.following.all().values_list('user_id'))

关于django - 值错误 : Cannot use Queryset for "": Use a Queryset for "",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43827650/

相关文章:

linux - ubuntu 的 UWSGI https 配置

python - 验证datefield,以便它不会在Django中使用将来的日期?

python - Django:如何在 list_display 中包含内联模型字段?

python - 模块未找到错误: No module named 'pip' on virtual environment

python - Django 社交网站与 heroku

python - 如何使用 django-mptt 模型进行 bulk_create?

django - Django 批量创建检查已经存在于批量对象和实例中?

Django:在 ValidationError 上停止模型实例创建

javascript - 从 Backbone.js 中的非 JSON 服务器响应创建模型实例

django - 在 django1.4 和 postgresql 8.1 中避免 RETURN postgresql 语句与 bug #10467 相关