Django - Как отфильтровать объекты с помощью «автора» из набора «авторов» (пользователей)? - PullRequest
2 голосов
/ 01 марта 2010

Как отфильтровать объекты с помощью «author» из набора «author s» (User s)?

«Объектами» являются Post с, имеющие author (ForeignKey до User).

Я в значительной степени озадачен этим, поэтому я был бы признателен за помощь в этом. Конечно, можно пойти по этому наивному пути, отфильтровав их вручную, но это сильно ударит по базе данных. Спасибо, в любом случае.

EDIT: Список сообщений :

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]))

Это самый эффективный способ получить все сообщения автора и его друзей? (Примечание: это наивная реализация, так как она не обрабатывает нумерацию страниц и т. Д. Сделаем это позже)

Ответы [ 2 ]

4 голосов
/ 01 марта 2010
Post.objects.filter(author__in=setofusers)
4 голосов
/ 01 марта 2010

Что-то вроде:

Post.objects.filter(author=user)

Где user - соответствующий пользователь должен работать, но трудно дать хороший ответ без моделей

EDIT

Теперь, когда я понял ваш вопрос, попробуйте это:

Post.objects.filter(author__in=users)

Где пользователи - это набор пользователей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...