2011-08-10 106 views
1

我可以用Django模板語言以任何方式捕捉當前年份嗎?我需要爲當年創建一個鏈接,我不想手動傳遞它。並通過視圖發送它引發我一個錯誤:Python Django模板

Caught NoReverseMatch while rendering: Reverse for 'blog_archive_year' with arguments '()' and keyword arguments '{'year': ''}' not found. 

這裏是網址:

url(r'^(?P<year>\d{4})/$', 
     view='post_archive_year', 
     name='blog_archive_year' 

視圖

def post_archive_year(request, year, **kwargs): 
    #now = datetime.datetime.now() 
    #current_year = now.year 
    return date_based.archive_year(
     request, 
     #year=current_year, 
     year=year, 
     date_field='publish', 
     queryset=Post.objects.published(), 
     make_object_list=True, 
     **kwargs 
    ) 
post_archive_year.__doc__ = date_based.archive_year.__doc__ 

,這是虛擬的模板:<

<a href="{% url blog_archive_year year=2011(I'd like to send him year here) %}">Articols archive</a> 

請h ELP :)

回答

2

首先,你應該在url中定義的年份模式:

url(r'^(?P<year>\d{4})/$', 'post_archive_year', name='blog_archive_year') 

要打印當年在模板中使用:

{% now Y %} 
+0

我現在可以節省{%含量「Y」%}以某種方式變量?如果我將它傳遞給它,它會一直提示錯誤:url blog_archive_year year = {%now「Y」%}或者像url blog_archive_year year = now「Y」。 – user823148

+0

我不認爲有可能將'now'傳遞給url標記。我建議你在你的視圖中添加一年到你的模板上下文中。 –