Как я могу получить переменную, переданную во включенный шаблон в Django - PullRequest
3 голосов
/ 17 ноября 2009

Я новичок в Django и не могу достичь чего-то тривиального. Пожалуйста, помогите мне с этим.

  1. Я устанавливаю переменную pgurl в моем views.py
  2. У меня есть доступ к переменной {{pgurl}} в моем шаблоне with_tag.html. Этот шаблон включает в себя шаблон pagination.html
  3. В pagination.html я не могу использовать переменную {{pgurl}}, и ничего не печатается

Как передать эту переменную во включенный шаблон?

views.py

def with_tag(request, tag, template_name='main/with_tag.html', current_page=1, pgurl=''):
    if request.method == 'GET':
        query_tag = Tag.objects.get(name=tag)
        primes = TaggedItem.objects.get_by_model(Prime, query_tag)
        primes = primes.order_by('-date')
        request.page = current_page
        tcm_pp = TCM_ITEMS_PER_PAGE
        pgurl = request.path
    else:
        return HttpResponseRedirect(request.path)

    return direct_to_template(request, template_name, { 'primes' : primes, 'prime_total' : Prime.objects.count(), 'now': datetime.now(), 'page' : current_page, 'tcm_pp' : tcm_pp, 'tag' : tag, 'pgurl' : pgurl })

with_tag.html

{% extends "base.html" %}
{% load comments %}
{% load pagination_tags %}

...

  {% include "pagination.html" %}
  {% paginate %}

pagination.html

{% if is_paginated %}
{% load i18n %}

<div class="pagination">
    {% if page_obj.has_previous %}
        <a href="{{ pgurl }}{{ page_obj.previous_page_number }}{{ getvars }}" class="prev">&lsaquo;&lsaquo; {% trans "previous" %}</a>
    {% else %}
        <span class="disabled prev">&lsaquo;&lsaquo; {% trans "previous" %}</span>
    {% endif %}
    {% for page in pages %}
        {% if page %}
            {% ifequal page page_obj.number %}
                <span class="current page">{{ page }}</span>
            {% else %}
                <a href="{{ pgurl }}{{ page }}{{ getvars }}" class="page">{{ page }}</a>
            {% endifequal %}
        {% else %}
            ...
        {% endif %}
    {% endfor %}
    {% if page_obj.has_next %}
        <a href="{{ pgurl }}{{ page_obj.next_page_number }}{{ getvars }}" class="next">{% trans "next" %} &rsaquo;&rsaquo;</a>
    {% else %}
        <span class="disabled next">{% trans "next" %} &rsaquo;&rsaquo;</span>
    {% endif %}
</div>
{% endif %}

1 Ответ

0 голосов
/ 17 ноября 2009

Будет полезно, если вы опубликуете вывод отрендеренной страницы. Контекст должен быть передан, возможно, это будут теги вашего шаблона. Попробуйте сделать assert и проверьте, правильно ли были переданы переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...