我有我想進入一個過濾器,並得到一個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