Django TemplateSyntaxError in with template标记

2024-04-27 05:20:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在我的项目中使用此应用程序。 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 %}

错误:

^{pr2}$

这是用户收藏夹的模板标记部分:

@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)

我怎样才能消除这个错误?谢谢。在


Tags: 用户inobjappformodelas错误
2条回答

在文档中,一个相当常见的约定是,尖括号中的任何内容都是一个占位符,将被实际值替换。在本例中,<user>应该被包含实际用户的对象替换。在

{% with user_favorites request.user ... 

不过,我必须说,文件仍然没有任何意义。你不能在这样的with语句中使用赋值标记-即使在更正了用户问题之后,这仍然不起作用。令人困惑的是,相同的语法在整个文档中重复出现,但根本不起作用。在

我认为这只是文档中的一个bug,并且怀疑如果您简单地删除“with”这个词,这将起作用。在

要在django中使用自定义模板标记,需要在template中显式地^{}it。 在模板的开头添加这一行(但是在{% extends ... %}之后,如果有这样的话):

{% load favit_tags %}

django favit自述中似乎遗漏了这一步。在

相关问题 更多 >