У меня есть модель проекта, похожая на:
class Project(models.Model):
...
lead_analyst=models.ForeignKey(User, related_name='lead_analyst')
...
Я хочу использовать агрегирование django, чтобы вернуть всех пользователей с количеством проектов на пользователя. Что-то вроде:
models.User.objects.annotate(project_count=Count('project_set'))
Только это не работает, потому что auth.user
не знает о моем классе Project. Я получаю ошибку:
Невозможно разрешить ключевое слово project_set в поле. Возможные варианты: date_joined, электронная почта, сотрудник, имя, имя, группы, id, is_active, is_staff, is_superuser, last_login, last_name, lead_analyst, logentry, сообщение, пароль, siteprofile, отправитель, user_permissions, имя пользователя
Вопрос из двух частей, действительно:
Как получить это количество проектов за auth.user
Есть ли лучший способ записать связь между моим классом Project и классом auth.user
, которая сделала бы эту агрегацию жизнеспособной?
Или я должен просто взломать raw sql для агрегации (либо через raw sql в django, либо через представление в базе данных)?