Django-自定义标记不工作

Django-自定义标记不工作,django,Django,我想将模型传递给template base.html 我阅读了有关自定义标记的内容,并尝试执行此操作。它没有抛出任何错误,但也不起作用 我的代码: base.html: {% load staticfiles %} {% load tags %} <!DOCTYPE html> <html> <head> </head> <body> <ul class="dro

我想将模型传递给template base.html

我阅读了有关自定义标记的内容,并尝试执行此操作。它没有抛出任何错误,但也不起作用

我的代码:

base.html:

{% load staticfiles %}
{% load tags %}

<!DOCTYPE html>
<html>
        <head>
        </head>
        <body>
         <ul class="dropdown-menu" role="menu">
            {% for league in get_my_leagues %}
            <li> ddddd {{ league.league_name }}</li>
            {% endfor %}
         </ul>

        {% block content %}
        {% endblock %}
    </body>
</html>

当您使用
{%for x in y%}
时,这要求
y
是模板中的上下文变量,而不是模板标记

包含标记所做的是呈现一个模板(作为参数传递给
inclusion\u标记
decorator的模板),并在使用包含标记的地方插入结果

您可能希望注册
get_my_leagues
作为a(或者,如果您使用的是Django早于1.9的版本),并像这样使用它:

{% get_my_leagues as my_leagues %}
{% for league in my_leagues %}
    ...
{% endfor %}

当您使用
{%for x in y%}
时,这要求
y
是模板中的上下文变量,而不是模板标记

包含标记所做的是呈现一个模板(作为参数传递给
inclusion\u标记
decorator的模板),并在使用包含标记的地方插入结果

您可能希望注册
get_my_leagues
作为a(或者,如果您使用的是Django早于1.9的版本),并像这样使用它:

{% get_my_leagues as my_leagues %}
{% for league in my_leagues %}
    ...
{% endfor %}
伙计们

我来这里只是想告诉大家我找到了解决问题的办法。我正在使用上下文处理器来完成这项工作

谢谢大家的回答

伙计们

我来这里只是想告诉大家我找到了解决问题的办法。我正在使用上下文处理器来完成这项工作


谢谢大家的回答

有什么原因不能在
视图.py
中加载你的联盟并将它们传递给你的模板吗?@Chris我只是不知道如何处理视图,然后传递给基础模板好的,所以这里有两个问题:(a)为什么你上面所做的不起作用,以及(b)有没有更简单的方法来做到这一点?让我们先关注一下(a)。你说它不会抛出任何错误。发生了什么事?模板呈现时没有任何联盟吗?是的,@Cris。该模板被渲染,但不显示任何数据。您应该真正考虑阅读Django教程,并在您的视图中实现这个功能。有没有理由不能简单地将您的联赛加载到<代码>视图中?Py < /代码>并将其传递给您的模板?@克里斯,我不知道如何使用视图,并传递到基础模板,所以这里有两个问题:(a)为什么你上面所做的不起作用,和(b)有没有更简单的方法?让我们先关注一下(a)。你说它不会抛出任何错误。发生了什么事?模板呈现时没有任何联盟吗?是的,@Cris。该模板被呈现,但不显示任何数据。您应该真正考虑阅读Django教程,并在视图中实现此功能。注意Django 1.9不赞成<代码> BoeDebug标签> <代码>,赞成<代码> SimeLyTAG/<代码>。我会更新答案。嗨,@koniik,当我听从你的建议时,浏览器返回我这个错误:你是如何注册标签的?你能发布你的标签的更新定义吗?请注意,Django 1.9不赞成
assignment\u标签
而赞成
simple\u标签
。我会更新答案。嗨,@koniik,当我听从你的建议时,浏览器返回我这个错误:你是如何注册标签的?你能发布你标签的更新定义吗?