2014-10-05 81 views
0

我試圖在我的項目中使用這個應用程序。 https://github.com/streema/django-favit 我已經可以使用這個應用程序的fav-unfav部分。我也想列出每個用戶的用戶最愛。在讀我的角色,它說使用這一點,它會被列出,但我有一個錯誤帶模板標記的Django TemplateSyntaxError

{% 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

在文檔中這是一個相當常見的約定,尖括號中的任何內容都是由實際值替換的佔位符。在這種情況下,<user>應該被包含實際用戶的對象替換。

{% with user_favorites request.user ... 

但是我必須說,文檔仍然沒有任何意義。你不能在這樣的with語句中使用賦值標記 - 即使在糾正用戶問題之後,這仍然不起作用。令人困惑的是,在整個文檔中重複使用相同的語法,但它不起作用。

我認爲這只是文檔中的一個錯誤,並且懷疑如果您只是刪除單詞「with」,這將起作用。

+0

我還以爲它,但它沒有幫助。 – malisit 2014-10-05 12:46:47

+0

是的,只是更新了我的答案。 – 2014-10-05 12:49:57

+0

它的工作。謝謝。 – malisit 2014-10-05 17:12:18

0

要在django中使用自定義模板標籤,需要在模板中顯式地使用load。 在模板的beginnig加入這一行(但{% extends ... %}後,如果你有這樣的):

{% load favit_tags %} 

貌似這個步驟是從Django的favit README錯過。

+0

我沒有提到,但我已經添加了它。這不是關於它。 – malisit 2014-10-05 11:06:36