在我的django应用程序的index.html(我认为是网站的home page)中,我提供了指向网站中各个位置的链接。当用户到达其中一个位置时,他应该在其中找到一个链接,以回到首页。因此,我创建了一个base.html以供包括index.html在内的所有页面继承。在base.html中,我提供了这些链接。

base.html

...
<a href="{%url archives  %}"> Archives </a>
<br/>
<a href="{% url reports   %}"> Reports </a>
<br/>
<a href="{% url home   %}"> Home </a>
<br/>
..


我的问题是,当我在索引页(主页)上时,我不想显示主页链接。是否可以在模板中使用{% if %}条件进行链接?
目前,我没有在视图中传递任何参数

@login_required
def index(request, template_name):
    print 'index()::template=',template_name
    return custom_render(request, {},template_name )

def custom_render(request,context,template):
    req_context=RequestContext(request,context)
    return render_to_response(template,req_context)

最佳答案

首先,可以使用django render shortcut避免使用冗长的custom_render

from django.shortcuts import render
@login_required
def index(request, template_name):
    return render(request, template_name,extra={})


您可能会很厚脸皮,并在您的base.html中执行以下操作:

{% url home as home_url %}
{% if request.path != home_url %}<a href="{{ home_url }}">Home</a>{% endif %}


快速检查当前页面是否为主页。

如果将来可能变得更加复杂,则可以使用模板标记来检查您当前使用的URL是否与另一个URL相匹配。这是我之前用来检查菜单链接当前是否处于活动状态的模板标记:

https://gist.github.com/2049936

关于python - 如果模板中的条件在django中显示链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9737396/

10-08 22:49
查看更多