无法在Django中获取动态URL变量

时间:2014-05-20 15:19:03

标签: django django-templates django-views

我正在显示一张包含10天统计数据的图表。

我现在正试图设置一个按钮来改变偏移,以便在10天之前,然后在10天之前显示,等等。

我是使用包含偏移量的网址完成的。这是代码:

在urls.py中

url(r'^statistics/offset/(?P<off>\d+)$', views.viewStatistics, name='viewStatistics')

在我的模板中,按钮是:

<a href="{% url 'myapp.views.viewStatistics' off=off|add:"10" %}">

我想做的是:

  • 如果当前网址为/statistics/offset/0,则该按钮的网址应为/statistics/offset/10
  • 如果当前网址为/statistics/offset/37,则该按钮的网址应为/statistics/offset/47
  • 等...

问题1:生成的网址中的值始终为10(表示off不起作用,可能绑定为0)。

问题2 (与问题1无关):我想创建一个相反的“下一步”按钮(如果当前网址为X,则按钮的网址为X-10 ),但没有sub模板标记。我尝试使用负值add,但不起作用。我尝试了一个自定义的django-mathfilter,不起作用。

感谢!!!

1 个答案:

答案 0 :(得分:3)

重新。 1 - 您是否将off的当前值传递给模板?尝试使用简单<a>{{ off }}旁边呈现它。

重新。 2 - off|add:"-10" - has to工作。

仅供参考,如果foo未传递给模板,会发生什么:

>>> from django.template import Template, Context
>>> template = "{{ foo|add:'10' }}"
>>> Template(template).render(Context())
u'10'
>>> Template(template).render(Context({'foo': 10}))
u'20'