Внутреннее объединение двух не связанных напрямую моделей в Django - PullRequest
2 голосов
/ 06 июля 2011

Допустим, у меня есть такая модель (все несущественные поля для ясности удалены):

A(Model):
   someFields = ... #irrelevant in this case

B(Model):
   a = ForeignKey(A)
   my_data = ... #the data I need to retrieve

C(Model):
   user = ForeingKey(User)
   a = ForeignKey(A)
   class Meta:
      unique_together = ('user', 'a')

Теперь, как с помощью запросов Django я могу получить что-то эквивалентное этому SQL:

SELECT my_data FROM B WHERE B.a_id = C.a_id AND C.user = %user%

1 Ответ

3 голосов
/ 06 июля 2011

К счастью для вас, ваш запрос использует существующее отношение.

B.objects.filter(a__c__user=someuser).distinct().values('my_data')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...