2012-12-29 32 views
0

與前通用的看法,我有這樣的事情新的基於類的通用視圖和URL模式

link_info_dict = { 
    'queryset' : Link.objects.all(), 
    'date_field' : 'pub_date', 
} 
patterns('django.views.generic.date_based', 
    url(r'^links/$', 'archive_index', link_info_dict, 'coltrane_link_archive_index'), 
.... 
) 
與新的基於通用視圖

現在,我發現以下似乎工作:

from django.views.generic.dates import ArchiveIndexView 
.... 
urlpatterns = patterns('', 
url(r'^links/$', ArchiveIndexView.as_view(**link_info_dict), name='coltrane_link_archive_index'), 
.... 
) 

我想知道如果我做事情的最佳方式。 因爲我必須調用'as_view'方法,所以我必須先導入視圖,所以我不能「分解」「django.views.generic.date_based」。我實際上使用幾乎所有的基於date_based的通用視圖。導入所有這些意見,並讓模式(''空前綴的正確方法? 如果我將所有的應用程序遷移到這種新的風格的意見,我寧願做正確的方式:)

謝謝

+1

您的urls.py文件存在誤印。將link_info_dict更改爲entry_info_dict,反之亦然。 –

回答

2

這看起來很好 - 你確定沒有其他錯誤嗎?這與examples排隊。

from django.views.generic.dates import ArchiveIndexView 

from myapp.models import Article 

urlpatterns = patterns('', 
    url(r'^archive/$', 
     ArchiveIndexView.as_view(model=Article, date_field="pub_date"), 
     name="article_archive"), 
) 

,並將其與documentation

傳遞給as_view(任何參數對齊)將覆蓋在類中設置屬性。

+0

謝謝!我想你可以通過模型作爲參數或查詢集...在這種情況下,我使用查詢集以後能夠更改管理器。它似乎工作正常。 –

+0

沒問題 - 很高興能幫到你!請標記我的答案;) – rh0dium

相關問題