Вопрос новичка Django: получить количество связанных ForeignKey, условных для поля в таблице ForeignKey? - PullRequest
0 голосов
/ 07 апреля 2010

Вопрос новичка. У меня есть модели Django, которые выглядят так:

class Video(models.Model):
    uploaded_by = models.ForeignKey('VideoUser') 
    problem_video = models.BooleanField(default=False)
class VideoUser(models.Model):
    name = models.CharField(max_length=250 )
    def num_videos(self):
        num_videos = Video.objects.filter(uploaded_by=self, problem_video=false).count()
        return num_videos

И я хочу иметь возможность составить таблицу лидеров из пользователей, которые загрузили хотя бы одно не проблемное видео, упорядоченное по количеству загруженных не проблемных видео.

Я могу получить часть пути с помощью annotate - я могу создать упорядоченный список, но я не знаю, как сделать его условным для поля problem_video, являющегося ложным.

 leaderboard = VideoUser.objects. \
            .annotate(num_submissions=Count('videosubmission')) \
            .filter(num_submissions__gt=0).order_by('-num_submissions')

Может кто-нибудь предложить, как расширить это, чтобы принять во внимание также поле problem_video? Может быть, мне нужен соединительный стол ...?

1 Ответ

2 голосов
/ 08 апреля 2010

Если я правильно помню,

leaderboard = VideoUser.objects. \
        .annotate(num_submissions=Count('videosubmission')) \
        .filter(num_submissions__gt=0, video__problem_video=False).order_by('-num_submissions')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...