Вопрос о django модели API

Так, вот то, что я хочу сделать. У меня есть модель Staff, которая имеет внешний ключ к модели User. У меня также есть модель Match, которая имеет внешний ключ к модели User.

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

Это - то, что работает правильно теперь

User.objects.annotate(amount=Count("match")).filter(Q(amount__gt=0)).order_by("amount")

И это - то, что я хотел сделать

Staff.objects.annotate(amount=Count("match")).filter(Q(amount__gt=0)).order_by("amount")

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

1
задан Craig P. Motlin 12 April 2011 в 21:10
поделиться

2 ответа

Это не работает?

Staff.objects.annotate(ammount=Count("user__match")).filter(Q(ammount__gt=0)).order_by("ammount")
1
ответ дан 3 September 2019 в 00:13
поделиться

Если и Staff, и Match имеют внешние ключи для User, но не друг к другу, не существует такой вещи, как «сколько совпадений есть у каждого Staff». Для каждого пользователя существует несколько кадров и соответствия, поэтому просто невозможно узнать, какой персонал для пользователя связан с каким соответствием для этого же пользователя.

Это не ограничение Django - это логическое ограничение, наложенное тем, как вы структурируете свои отношения.

1
ответ дан 3 September 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: