【发布时间】:2015-12-27 12:13:41
【问题描述】:
我正在尝试将模板标签/包含标签合并到我的站点侧边栏中。当我输入时,页面的主要部分会正确更新:
{% if user.is_authenticated %}
<h1> Hello {{ user.username }}
{% else %}
<h1> Hello </h1>
{% endif %}
当我尝试在我的模板标签/边栏中使用相同的原则时,它似乎忽略了 user.is_authenticated 并且总是显示“登录”和“注册”,而它应该只显示“注销”。
html 的正文(主索引页):
{% load Kappa_extras %}
<body>
<div class="container-fluid">
<div class="row">
<div class="col-sm-2" id="side_section">
{% block sidebar %}
{% get_game_list %}
{% endblock %}
</div>
<!--Main section-->
<div class="col-sm-10" id="main_section">
{% block body %}
{% endblock %}
</div>
</div>
</div>
'Kappa_extras' 中的 get_game_list 函数:
from django import template
from Kappa.models import Game, Game_Page
from django.contrib.auth.models import User
register = template.Library()
@register.inclusion_tag('Kappa/sidebar.html')
def get_game_list():
return {'game_list': Game.objects.all()}
和“Kappa/sidebar.html”:
<div id="side_default_list">
<ul class="nav">
<li><a href="{% url 'index' %}">Kappa</a></li>
{% if user.is_authenticated %}
<li><a href="{% url 'user_logout' %}">Log Out</a></li>
{% else %}
<li><a href="{% url 'user_login' %}">Log In</a></li>
<li><a href="{% url 'register' %}">Register</a></li>
{% endif %}
</div>
我检查了一些较旧的查询,但它们都没有正常工作。我尝试将请求放入 def get_game_list(request): 但它只是说没有收到参数的值。 user.is_authenticated 时如何让侧边栏正确更新?
【问题讨论】:
-
The {% get_game_list %} .py是什么意思?这是一个实际的文件名吗? -
我认为它在django中被称为自定义模板标签。我正在使用 django 教程完成探戈,我真的很想将它合并到我的网站中。
-
是的,我知道它是什么。我说的是python文件名中的特殊字符
-
抱歉误传,不是py文件,而是那个标签的函数。
标签: python html css django authentication