2011-08-22 77 views
8

可以說我有代碼模板,像這樣的Django模板鏈接:用的if else語句

<a href="#"> 
    {% if request.user.first_name or request.user.last_name %} 
     {{ request.user.first_name }} {{ request.user.last_name }} 
    {% else %} 
     {{ request.user }} 
    {% endif %} 
</a> 

與此代碼的問題是,它增加了尾部空間聯繫起來,這樣的鏈接看起來像鏈接 _帶下劃線最後。

如何去除這樣的尾部空格? {% spaceless %}標記在這裏並不完全有幫助,因爲它僅刪除標記之間的空格。

回答

8

我真的找到了我的問題的簡單解決方案。

<a href="#">{% spaceless %} 
    {% if request.user.first_name or request.user.last_name %} 
     {{ request.user.first_name }} {{ request.user.last_name }} 
    {% else %} 
     {{ request.user }} 
    {% endif %} 
{% endspaceless %}</a> 

通過在其中放置無空格標籤剝離其獲取的字符串。配售外

0

快速解決方法:使用html註釋來「逃避」不必要的空白。 可能更好的解決方案:創建一個包含此條件的模板標籤。

0

借調一個模板標籤的使用 - 這是d很好(並且非常容易)從模板中刪除此邏輯。

雖然,不只是使用{{ request.user }}給出了與你在這裏做什麼完全相同的結果嗎?

+0

在Django 1.3'__unicode__'用戶模式回報的方法self.username –

+0

@marltu - 敢肯定它一直都是這樣。 –

0

相反的if-else語句塊嘗試使用較短的版本:

{{ user.get_full_name|default:user.get_username }}