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

时间:2010-03-01 14:46:22

标签: python database django django-models

如何使用“author s”(author s)中的“User”过滤对象?

“对象”为Post个,有authorForeignKeyUser)。

我对此感到非常难过,所以我很感激你的帮助。当然,人们可以通过手动过滤它们来实现这种天真的方式,但这会很难打到数据库。不管怎么说,还是要谢谢你。

编辑: 发布帖子

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

澄清:我正在尝试根据一组用户而不是单个用户进行过滤(这很容易做到)         当= models.DateTimeField(auto_now = TRUE)

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

UserProfile(连接到用户)的代码摘录

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

这是获取作者及其朋友的所有帖子的最有效方式吗? (注意:这是一个天真的实现,因为它不处理分页等。稍后会这样做)

3 个答案:

答案 0 :(得分:4)

类似的东西:

Post.objects.filter(author=user)

user相关用户应该在哪里工作,但很难给出没有模型的好答案

修改

现在我理解了你的问题,试试这个:

Post.objects.filter(author__in=users)

用户是用户集的地方

答案 1 :(得分:4)

Post.objects.filter(author__in=setofusers)

答案 2 :(得分:0)

Post.objects.filter(attribute__in = list_of_ids)