2010-03-01 15 views
1

如何使用「author s」(User s)中的「author」過濾對象?Django - 如何用一組「作者」(用戶)中的「作者」過濾對象?

「對象」是Post s,具有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)

感謝大家幫助上一個問題。現在我有一個最後一件事要問:從用戶配置

代碼摘錄(連接到用戶)

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

這是最有效的方式來獲得由作者和其朋友所有的職位? (注:這是一個幼稚的做法,因爲它不處理分頁,等以後會做)

+0

的我不知道你問這裏。你想過濾來自給定'Author'的所有'Post'對象?或者你想從所有'Authors'的列表中找到一個特定的'Author'? – 2010-03-01 14:50:30

+0

@rishabh:我想我只是澄清... – aviraldg 2010-03-01 14:54:00

+0

對於你的問題的最新部分,這似乎是一個很好的方式來處理它 – Zach 2010-03-01 17:20:03

回答

4

喜歡的東西:

Post.objects.filter(author=user) 

哪裏user是相關的用戶應該工作,但很難給出很好的答案,沒有模型

編輯

現在,我明白你的問題,試試這個:

Post.objects.filter(author__in=users) 

,用戶是組用戶

+0

@Zach:我增加了更多的細節......你現在可以幫忙嗎? – aviraldg 2010-03-01 14:56:02

+0

剛剛更新了我的答案 – Zach 2010-03-01 14:58:26

+0

謝謝......最後一件事(閱讀上面的問題) – aviraldg 2010-03-01 15:14:25

3
Post.objects.filter(author__in=setofusers) 
+0

謝謝......最後一件事(閱讀上面的問題) – aviraldg 2010-03-01 16:01:46