@blazer05

Как правильно вывести урл в шаблоне?

Получаю ошибку:
Reverse for 'goto' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Есть функция
def track_url(reguest):
    page_id = None
    url = '/rango/'
    if reguest.method == 'GET':
        if 'page_id' in reguest.GET:
            page_id = reguest.GET['page_id']
            try:
                page = Page.objects.get(id=page_id)
                page.views = page.views + 1
                page.save()
                url = page.url
            except:
                pass
    return redirect(url)

урл
url(r'^goto/', views.track_url, name='track_url'),
вывод в шаблоне
{% if category %}
            {% if pages %}
            <ul>
                {% for page in pages %}
                    {% for tag in page.tags.all %}
                        <li><a href="{% url 'goto' %}?page_id={{page.id}}" target="_blank">{{ page.title }}</a></li>
                        Теги: <a href="{% url 'tags' tag.slug %}" target="_blank">{{ tag.title }}</a>
                    {%endfor %}
                {% endfor %}

Если в ссылке прописать напрямую /rango/goto/ то работает. Работает и так 'rango.views.track_url', но не пойму почему 'goto' так не работает, ведь в запросе нет дополнительный аргументов?
  • Вопрос задан
  • 571 просмотр
Решения вопроса 1
@Nerevar_soul
Надо имя или функцию передавать в тег url.

{% url 'track_url' %} или {% url 'имя_приложения.views.track_url' %}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы