2014-12-16 3 views
1

Как вы определяете шаблон именованного URL-адреса в Django, если вам нужно передать ему переменную шаблона? Мой шаблон содержит следующий URL:Создать URL-адрес Django с использованием переменной шаблона?

# templates/welcome.html 
# Link to template that shows all members near member with this uid 
<a href="{% url 'show-members-near' %}uid={{ uid }}">Show members near you</a> 

Мой файл URLconf верхнего уровня содержит следующую картину, которая указывает на конкретного приложения URL-адрес файла:

# conf/urls.py 
urlpatterns = patterns('', 
    ... 
    url(r'^members/',   include('apps.members.urls')), 
    ... 
) 

Вот мое приложение конкретным URL файла :

# app/members/url.py 
url(r'^near/(?P<uid>\d{1,})/$', 
    'show_members', 
    {'template': 'show_members.html'}, 
    name='show-members-near'), 

Это ошибка, я получаю:

NoReverseMatch at /personal_profile/welcome/ 
Reverse for 'show-members-near' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['members/near/(?P<uid>\\d{1})/$'] 

Я попытался вставить ключевое слово аргумент, как это, но это не сработало:

<a href="{% url 'show-members-near' uid={{ uid }} %}">Show members near you</a> 

После выполнения некоторых исследований, все, что я читал, казалось, показывают, что ключевое слово аргумент должен быть принят, как я это сделал вышеперечисленное. То, что я пытаюсь сделать, это эквивалент, после чего делает работы:

<a href="/members/near/{{ uid }}/">See who's here</a> 

Как указать ключевое слово аргумент? Я не видел ничего, что обращало бы внимание на эту ситуацию в документах Django (хотя я, возможно, пропустил это).

Спасибо!

ответ

1

Вы просто передадите uid в качестве ключевого слова. Вы можете найти его документально зарегистрированным here. Таким образом, ваш URL-адрес будет выглядеть следующим образом:

<a href="{% url 'show-members-near' uid=uid %}">Show members near you</a> 
0

Этот случай, конечно, явно поддерживается и документируется. Вам не хватает того факта, что все внутри тега шаблона оценивается. Вы можете просто передать uid в:

{% url 'show-members-near' uid=uid %} 
Смежные вопросы