У меня есть модель пользователя и модель представления. Каждое представление имеет поле ForeignKey, которое называется user_submitted для пользователя, который его загрузил.
class Submission(models.Model):
uploaded_by = models.ForeignKey('User')
class User(models.Model):
name = models.CharField(max_length=250 )
Мой вопрос довольно прост: как я могу получить список трех пользователей с наибольшим количеством представлений?
Я попытался создать метод num_submissions для модели User:
def num_submissions(self):
num_submissions = Submission.objects.filter(uploaded_by=self).count()
return num_submissions
и затем делает:
top_users = User.objects.filter(problem_user=False).order_by('num_submissions')[:3]
Но это не так, как и все другие вещи, которые я пробовал. Могу ли я сделать это с помощью интеллектуального запроса к базе данных? Или я должен просто сделать что-то более взломанное в файле views?