Django ORM: запрос двух моделей - PullRequest
1 голос
/ 24 июня 2009

у меня 2 модели Я использую эти модели для отображения аватара в комментариях.

django_comments:

user_id
comment
.....

myapp_profile

user_id
image_path
......

На самом деле я делаю необработанный запрос с помощью cursor.execute (), чтобы получить эти данные

 -------   ----------   -------  
'user_id' 'image_path' 'comment'  
 -------   ----------   -------  
   3       name.jpg       test 

но я хочу сделать «способами Джанго Орма»

Есть решение?

Спасибо

Ответы [ 2 ]

5 голосов
/ 24 июня 2009

Подумайте об этом: что вы получите обратно? Это не было бы примером любой модели, не так ли?

Однако, с более новыми функциями annotate () и F (), вы можете выполнить что-то вроде:

Comment.objects.all().annotate(image_path=F('user__profile__image_path'))

Конечно, вы всегда можете просто:

Comment.objects.all().select_related()

и получите image_path из x.user.get_profile (). Image_path

1 голос
/ 20 сентября 2011

Вам нужна функция, предложенная в билете # 14030 , которая сделает следующую работу:

Comment.objects.all().annotate(image_path=F('user__profile__image_path'))

Что я сейчас использую:

Comment.objects.all().extra(select={'image_path': 'profiletable.image_path'})     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...