繁体   English   中英

带有模板标记的Django TemplateSyntaxError

[英]Django TemplateSyntaxError in with template tag

我正在尝试在我的项目中使用此应用程序。 https://github.com/streema/django-favit我已经可以使用此应用程序的fav-unfav部分。 我也想为每个用户列出用户的收藏夹。 在我的阅读部分中,它说使用它,它将被列出,但是我有一个错误

{% with user_favorites <user> "baslik.Entry" as favorite_list %}
    {% for fav_obj in favorite_list %}
        {{ fav_obj }}
    {% endfor %}
{% endwith %}

错误:

TemplateSyntaxError at /
u'with' expected at least one variable assignment

这是user_favorites的模板标记部分:

@register.assignment_tag
def user_favorites(user, app_model=None):
    """
    Usage:

    Get all user favorited objects:

        {% with user_favorites <user> as favorite_list %}
            {% for fav_obj in favorite_list %}
                {# do something with fav_obj #}
            {% endfor %}
        {% endwith %}

    or, just favorites from one model:

        {% with user_favorites <user> "app_label.model" as favorite_list %}
            {% for fav_obj in favorite_list %}
                {# do something with fav_obj #}
            {%
        {% endwith %}
    """

    return Favorite.objects.for_user(user, app_model)

如何摆脱这个错误? 谢谢。

在文档中,一个合理的惯例是,尖括号中的任何内容都是一个占位符,由实际值替换。 在这种情况下,应该将<user>替换为包含实际用户的对象。

{% with user_favorites request.user ... 

不过,我必须说,文档仍然没有任何意义。 您不能在这样的with语句中使用分配标记-即使在纠正了用户问题之后,这仍然无法正常工作。 令人困惑的是,在整个文档中都重复了相同的语法,但这根本行不通。

我认为这只是文档中的一个错误,并且怀疑如果仅删除“ with”一词会起作用。

要在Django中使用自定义模板标签,需要将其显式load到模板中。 将此行添加到模板的开头(但在{% extends ... %} extended {% extends ... %} ,如果有的话):

{% load favit_tags %}

django-favit README似乎缺少此步骤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM