Форум сайта python.su
Есть две модели
class Posts(models.Model):
user = models.ForeignKey(User)
text = models.TextField()
date = models.DateTimeField(auto_now_add = True)
class Subscribe(models.Model):
user = models.ForeignKey(User, related_name = 'some1')
who = models.ForeignKey(User, blank=True, related_name = 'some2')
# @name - имя пользователя которого читает request.user
ur = get_object_or_404(User, username = name)
subscribe = Subscribe.objects.filter(who = ur)
Офлайн
Спасибо, lorien!
Судя по всему, ключевое здесь pk__in
Офлайн
Тут кстати не очень оптимально получается.
- Зачем тащить весь объект, когда нужен только первичный ключ?
- Почему бы не сделать вообще вcё в один запрос с подзапросом?
posts = Post.objects.filter(user__in=Subscribe.objects.filter(who__username=name).values("user").query)\
.order_by('-date')[:10]
Офлайн
Да это вроде даже не оптимизация, а просто good practice.
Офлайн
А как модифицировать пример, чтобы получить список пользователей в порядке зависимости от количества подписчиков ?
Офлайн