Создайте набор запросов django, который заказывает внутреннее соединение

Я пытаюсь отслеживать просмотры страниц на веб-сайте на основе django. у меня следующая модель

class PageView:
   date = DateTimeField( auto_now=True )
   user = ForeignKey( User )
   page = ForeignKey( Page )

отслеживать каждый просмотр страницы. Я хочу создать набор запросов, который возвращает недавно просмотренные страницы пользователя, упорядоченные по дате просмотра каждой страницы. Например, если у меня есть следующие просмотры страниц:

date        | user_id | page_id | 
2011-02-20  |       5 |       2 |
2011-02-19  |       5 |       1 |
2011-02-24  |       5 |       1 |
2011-02-23  |       5 |       2 |

Я хочу, чтобы набор запросов возвращался

date        | page_id |  title    | and everything associated with the page
2011-02-24  |       1 |  "page 1" |
2011-02-23  |       2 |  "page 2" |

В ЭТОЙ ПОСЛЕДОВАТЕЛЬНОСТИ!

В SQL я могу сделать это

SELECT p.*, v.date FROM page p, 
(SELECT page_id, MAX(date) date FROM pageview 
WHERE user_id=5 GROUP BY page_id) AS v where p.id=v.page_id 
ORDER BY v.date;

Но как я могу построить его с помощью API набора запросов django?

Буду очень признателен за любую помощь!


person user560494    schedule 21.02.2011    source источник


Ответы (1)


Page.objects.filter(pageview__user = request.user).order_by('pageview__date')

Дополнительные сведения о соединениях SQL см. в документации

person maximus    schedule 22.02.2011