我正在尝试在我的项目中使用此应用。 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)
如何摆脱这个错误?感谢。
答案 0 :(得分:1)
在文档中,一个相当普遍的惯例是尖括号中的任何内容都是一个占位符,可以用实际值替换。在这种情况下,<user>
应该被包含实际用户的对象替换。
{% with user_favorites request.user ...
但是,我必须说,文档仍然没有任何意义。你不能在这样的with语句中使用赋值标记 - 即使纠正了用户问题,这仍然无效。令人困惑的是,整个文档中重复使用相同的语法,但它根本不起作用。
我认为这只是文档中的一个错误,并怀疑如果你只是删除“with”这个词就可以了。
答案 1 :(得分:0)
要在django中使用自定义模板标记,需要在模板中明确load
它。
在模板的开头添加此行(但在{% extends ... %}
之后,如果有的话):
{% load favit_tags %}
看起来django-favit README错过了这一步。