Django -- 如何从一组“作者”(用户)中过滤出带“作者”的对象?

3 投票
3 回答
9943 浏览
提问于 2025-04-15 19:52

如何从一组“作者”(User)中筛选出带有“author”的对象?

这里的“对象”指的是Post,它们有一个author(这是指向User的外键)。

我对此感到很困惑,所以希望能得到帮助。当然,大家可以用简单的方法手动筛选,但那样会对数据库造成很大压力。无论如何,谢谢大家。

编辑:

帖子列表

class Post(models.Model):
    '''A Post or a Status Update.
    '''
    content=models.CharField(max_length=200)
    author=models.ForeignKey(django.contrib.auth.models.User, related_name="author")
    tags=models.ManyToManyField(Tag)
    replyTo=models.ManyToManyField(django.contrib.auth.models.User, related_name="replyTo")
    # Snip model methods

澄清一下:我想根据一组用户来筛选,而不是单个用户(单个用户的筛选非常简单)。

感谢所有帮助我解决之前问题的人。现在我还有最后一个问题:

来自用户资料(与用户相关)的代码片段

def get_updates():
    return Post.objects.filter(author__in=(list(self.friends.all()) + [self]))

这是获取某个作者及其朋友所有帖子最有效的方法吗?(注意:这是一个简单的实现,因为它没有处理分页等问题。稍后会处理这些。)

3 个回答

0

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这种时候,我们需要去寻找解决方案。StackOverflow是一个很好的地方,程序员们可以在这里提问和回答问题。

当你在StackOverflow上看到一个问题时,通常会有很多人分享他们的经验和解决方法。有些回答可能会很复杂,但其实很多时候,问题的解决办法是比较简单的。

如果你在学习编程,遇到困难,不妨去看看StackOverflow上的相关问题和答案,可能会对你有很大的帮助。

Post.objects.filter(attribute__in = list_of_ids)
5
Post.objects.filter(author__in=setofusers)

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

6

像这样:

Post.objects.filter(author=user)

这里的 user 是指相关的用户,应该可以正常工作,但没有模型的话,很难给出一个好的答案。

编辑

现在我明白你的问题了,试试这个:

Post.objects.filter(author__in=users)

这里的 users 是用户的集合。

撰写回答