2009-09-11 4 views
0

일반보기를 사용하여, 나는 다른 데이터베이스 테이블에서 필드 (most_view)를 업데이 트하고 싶습니다.Django 일반보기 및 "대부분의보기"기사

사용자가 기사를 읽을 때 "대부분의보기"에 대한 새 등록 또는 업데이트를 얼마나 쉽게 업데이트합니까?

ulrs.py

from Paso_a_Paso.noticias.models import Noticia 

noticias_info_dict = { 
     'queryset':Noticia.objects.all(), 
     'date_field':'pub_date', 
} 

urlpatterns = patterns('django.views.generic.date_based', 
    (r'^$','archive_index', noticias_info_dict,'noticias_archive_index'), 
    (r'^(?P<year>\d{4})/$','archive_year', noticias_info_dict,'noticias_archive_year'), 
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/$','archive_month', noticias_info_dict,'noticias_archive_month'), 
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/$','archive_day', noticias_info_dict,'noticias_archive_day'), 
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$','object_detail', noticias_info_dict,'noticias_archive_detail'), 
) 

고마워 :)

답변

0

현재 일반적인 전망 (class-based generic views 도움이 될 것입니다)이 작업을 수행 할 실제 청소 방법이 없습니다.

당신은 할 수 있습니다

  • 은 일반 뷰를 호출하고 기타 업데이트를 수행하는 래퍼보기를 만듭니다. 단점은 일반 뷰의 작업 (올바른 아티클 개체 찾기)의 일부를 복제하여 중복 된 DB 쿼리를 생성한다는 것입니다.

또는

  • 는 일반보기를 포기하고 자신의 물품. 생각만큼 힘들지는 않을 것입니다. 지금은 아마도 가장 깨끗한 접근법 일 것입니다.
+0

지금 그가 'noticias_info_dict'를 queryset과 함께 전달하면 래퍼가 중복 쿼리를 만드는 이유는 무엇입니까? 나는 그것을 전혀 생각하지 않는다. 래퍼 함수가 완벽하게 받아 들일 수 있다고 생각합니다. –

+0

Querysets은 게으르므로, info dict에서 해당 쿼리 세트를 작성하면 일반 뷰가 .get() 메소드를 호출하여 요청 된 단일 행을 페치 할 때까지는 쿼리가 트리거되지 않습니다. 래퍼에서 .get()을 호출해야한다면 일반 뷰는 다시 호출합니다 (제어 할 수는 없습니다). 이것은 두 가지 쿼리입니다. –