게시물, 견적, 이미지, 링크 등 Tumblr의 항목과 같은 다양한 것들에 대한 클래스가 포함 된 장고 앱이 있습니다. 이러한 각 개체에는 datetime이 있습니다.Django를 사용하면 다른 객체로 된 날짜순 페이지의 Tumblr 스타일 시리즈를 어떻게 만들 수 있습니까?
모든 유형의 가장 최근 항목 20 개를 결합한 목록을 표시하고 싶습니다. 이전 항목을 통해 페이지를 다시 게시 할 수 있기를 원합니다. Tumblr의 페이지처럼.
class CombinedItem(models.Model):
date = models.DateTimeField()
item_type = models.CharField() # eg, 'post', 'quote', 'image', 'link'
item_id = models.IntegerField()
그리고에 새 항목을 추가
그러나 나는 내가 뭔가를 별도의 클래스를 작성해야 ... 개체의 다양한 종류에 걸쳐이 같은 쿼리를 수행하는 방법을 생각할 수 없다 그 때마다 새 게시물, 견적, 이미지, 등등을 추가합니다. 그리고 나서, 내 목록에 대해 가장 최근 항목에 대한 CombinedItem 클래스를 쿼리 한 다음 반환하는 각 항목의 기본 세부 정보를 가져옵니다. 그렇다면 모든 것을 수행하는 가장 효율적인 방법은 무엇입니까? 감사.
정말 고마워요. 아주 유용한 예제입니다! 나는 많은 조인 또는 목록의 모든 항목에 대한 쿼리로 끝날 것 같아요 ...하지만 그건 아마도 피할 수없는 일이지만 나는 이것을합니다. 다시 한번 감사드립니다. –
유감스럽게도 "자식"속성은 본질적으로 역 관계이며,'select_related'는 그러한 관계를 따르지 않습니다. 그러나 Django 1.4가 히트 할 때, 새로운'prefetch_related'는 모든 것을 한 번에 선택할 수 있어야합니다. 그 동안 기본적으로 같은 것을 구현하는 django-batch-select도 확인할 수 있습니다. –