0
我在我的Django應用程序(在別處維護)中使用一些第三方模板標籤,將用戶名作爲字符串返回,我可以在我的模板中訪問這個。自定義Django模板標籤查找字符串用戶名並將其作爲用戶對象返回
{% for user in gr.user.foll.list %}
{{user}}
麻煩的是,因爲{{用戶}}返回一個字符串 - 我需要轉換成一個Django用戶對象,如果它在Django的數據庫是否存在,或者設置一個varible未註冊的,如果不是,所以我可以做之類的東西:
{ user.get_profile.about }} # get profile information
所以我想我會寫我的第一個Django模板標籤,所以我可以用這樣的:
{% webapp_user_lookup user %} # my custom tag
{% ifnot unRegistered %}
{{ user.get_profile.about }} # get profile information - would fail with a string
{% endifnot %}
{% endfor %}
我在其他地方使用,以查找用戶在視圖中的代碼是:
try:
user = User.objects.get(username__iexact=user)
unRegistered = False
if not other_user.is_active:
unRegistered = True
except:
unRegistered = True
不過看着我無法理解如何更好地構建自定義模板標籤,把我的用戶名字符串Django模板標籤的例子 - 並返回結果爲對象(如果存在),或者設置一個可變的如果不是和原始字符串。我真的想更好地理解結構是如何工作的,如果我需要一個'班',如果是的話,爲什麼。 (我是編程新手)。
注意,如果你把{{用戶}}我也用{{username}} – 2010-01-06 20:40:11
,除非你在用戶的保存m中補償了它ethod,django可以存儲JOESHMO和joeshmo的用戶名,這會引發錯誤。如果沒有處理,您可以離開「User.DoesNotExist」部分。 – 2010-01-06 20:42:55
布蘭登這看起來很簡單,我可以理解你的代碼 - 我現在只想和它一起玩,感謝你花時間寫出這樣一個清晰的例子。 – 2010-01-06 20:49:30