我有我想进入一个过滤器,并得到一个URL出来的几个值。Django的 - 如何使用templatetags过滤与多个参数
在我的模板,我有:
{% if names %}
{% for name in names %}
<a href='{{name|slugify|add_args:"custid=name.id, sortid=2"}}'>{{name}}</a>
{%if not forloop.last %} | {% endif %}
{% endfor %}
{% endif %}
在我templatetags我:
@register.filter
def add_args(value, args):
argz = value.strip() + '-' + 'ARGS'
arglist = args.split(',')
for arg in arglist:
keyval = arg.split('=')
argz.join(keyval[0] + 'ZZ' + keyval[1])
argz.join('QQ')
return argz
输出网址应该会像:
http://foo.org/john-smith-ARGScustidZZ11QQsortidZZ2
凡ARGS是开始的参数,ZZ是“=”和QQ是一个“&”等效。
首先:这会工作,但我得到的custid = name.id进来的add_args(),我想有custid = 11进来。如何通过id作为id和不文本。
此外,有没有办法正好在密钥=>值的阵列状在PHP发送。 在PHP中我将建立一个数组,让说:
arglist = array('custid' => $nameid, 'sortid' => $sortid);
然后我会在arglist中作为参数传递给add_args()
和add_args()
我会做
foreach(arglist as $key => $value)
$argstr .= $key . 'ZZ' . $value . 'QQ'.
任何人是否有更好的办法做这个工作?
注:如果我要传递的所有参数作为一个字符串,在过滤他们分手了,我不介意。我只是不知道如何通过name.id作为它的值...
好抓!我输入了所有内容......错过了作业。对Python也是新的。试图摆脱PHP,但我发现Django的学习曲线非常陡峭。随着API不断变化并被淘汰和淘汰,这是一个动态的目标。 – un33k 2009-05-22 17:58:31
PHP不是Django。你无法比较两者。首先你学习python。然后你学习Django。为什么要将类似PHP的心态带入Django Web框架? – drozzy 2009-05-26 17:02:22
PHP用于解释预期的行为。所以,我知道我想要什么,我知道它是如何在PHP中完成的,现在试图找出我如何将PHP留在后面并转移到PyDj。 – un33k 2009-05-27 17:53:23