2011-08-10 3 views
1

現在の年をDjangoテンプレート言語でどのように捕捉できますか?私は今年のリンクを作成する必要があり、私は手でそれを渡すしたくない。そして、ビュー経由で送信することは私にエラーがスローされます:Python Djangoテンプレート

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

は、URLである:

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> 

してくださいELP :)

答えて

2

まず、あなたはURLで年間のパターンを定義する必要があります。

{% now Y %} 
+0

私は今{%の内容を保存することができます:

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

は、テンプレートを使用して現在の年印刷するには"Y"%}何とか変数に? url blog_archive_year year = {%now "Y"%}またはurl blog_archive_year year = now "Y"のように、エラーを表示し続けます。 – user823148

+0

urlタグに 'now'を渡すことはできないと思います。私はあなたのビューのテンプレートコンテキストに年を追加することをお勧めします。 –