2016-06-01 7 views
0

テンプレートのurlnameを参照できるので、テンプレート内のurlリンクを変更したいときにいつでもハードコーディングする必要はありません。Django:テンプレート内のURL名を参照してパラメータを渡す

は、テンプレートの例では、私が使用します。私は、URLの正規表現で使用される、より複雑なパラメータを渡したい場合は

<a href="{% url 'urlname' parameter %}">The link</a> 

私の問題は、あります。私の場合、 "_"で区切られた2つの文字列の連結を渡したいと思います。これらの文字列はPythonオブジェクトから来ており、私はそれを行う方法を知りません。たとえば、これらの文字列がユーザーの名字と姓であるとします。

私が試した:

<a href="{% url 'urlname' "user.firstname_user.lastname" %}">The link</a> 

などのトリックをが、どれも働きました。

誰かが助けることができますか?

答えて

1

は単純に、あなたはしないでください。

あなたはどちらか(も視野にわずかな変更を必要とする)は、2つのキャプチャグループ

url(r'(?P<first_name>\w+)_(?P<last_name>\w+)/$', view_name, name='url_name') 
{% url 'urlname' user.firstname user.lastname %} 

それともあなただけで十分で別のURLを見つけることを持っているあなたのURLを調整します。

+1

^^実際にあなたがそれを言うとき、それはただの論理です!私はそれにもかかわらず、 "キーワード"と "機能を追加"とのトリックを発見したが、それはかなり汚れていた... – MarAja

+0

@MarAja - それはあなたがカスタムテンプレートタグを作成する方が良いだろうが、それを行うためのURLを作る – Sayse

0

このthreadをご覧ください。あなたのために良い答えは、あなたがposititionnal引数を使用していると仮定すると:

<a href="{% url 'urlname' parameter=user.firstname_user.lastname %}">The link</a> 

があなたのURL confにと仮定するとそのようなものです:

url(r'^urlname/(?P<parameter>(catching regexp))$',...) 
+0

質問が重複していると思われる場合は、コメントにリンクを残す必要があります(その後、3k +担当者がいるときに終了するよう投票してください)。 – Sayse

+0

重複している可能性がありますが、カバーされた。 –

関連する問題