如何将变量传递到django中的包含模板中

时间:2009-11-17 06:25:42

标签: django django-templates

我是Django新手,无法实现微不足道的事情。请帮帮我。

  1. 我在views.py
  2. 中设置变量pgurl
  3. 我可以在我的with_tag.html模板中访问变量{{pgurl}}。此模板包含一个pagination.html模板
  4. 在pagination.html中,我无法使用变量{{pgurl}}并且没有打印任何内容
  5. 如何将此变量传递到包含的模板中?

    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 :(得分:0)

如果您发布呈现页面的输出将会很有帮助。上下文应该通过,可能是你的模板标签。尝试断言并检查变量是否正确传递。