如何通过模板更改视图内的变量?

时间:2015-06-22 08:17:20

标签: django django-templates django-views

我有这个函数,它在基于类的视图

中的上下文中传递

views.py

def date_range():
    week = 0
    if week >= 0:
        week = int()
    elif week < 0:
        pass

    start_date = datetime.date.today()
    return [start_date + timedelta(n) for n in range(11 + week)]


class MyListView(ListView):
    [...]

    def get_context_data(self, **kwargs):
        context = super(MyListView, self).get_context_data(**kwargs)
        context.update({
            [...]
            'date_range': list(date_range()),
        })

        return context

urls.py

urlpatterns = patterns(
    '',
    url(r'^(\d+)/$', 'my_app.views.date_range', name='date_create'),
    url(r'^$', views.MyListView.as_view(), name='people'),
)

模板

    <a href="{% url my_app.views.date_range week|add:'-11' %}">&lt;&lt; Prev</a>
    <a href="{% url my_app.views.date_range week|add:'11' %}">Next &gt;&gt;</a>

正如你所看到的,我想改变周&#39;每当我点击链接&lt;&lt;上一页和下一页&gt;&gt;

我这样做tutorial

1 个答案:

答案 0 :(得分:0)

在您的网址标记内,您必须使用网址的名称。

您应该阅读django doc https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#url

正确的语法是:

{% url 'date_create' arg=11 %}

更新

我检查了你的教程,首先你需要更新你的观点:

def date_range(request, week=None):

对不起,我的网址很差,我不知道你要做什么,这应该有用。

{% url 'date_create' week|add:'11' %}