是否可以更改QuerySet對象中的某些特定項目?在我的情況下,我試圖切割長度超過40個字符的「標題」字段,並在字段末尾添加「...」。修改查詢集結果
修改查詢集結果
回答
有兩種方法可以做你想做的。
第一個是使用Django過濾器。因此,如果您要循環查看您的查詢集的項目並在頁面上顯示它們,請使用類似truncatewords的內容。你會在你的模板中使用這個像這樣:
{% for item in queryset %}
<h1>{{ item.title|truncatewords:3 }}</h1>
{% endfor %}
它看起來不像是有Django的過濾器上的字符數截斷基地。如果你想要write your own filter這並不難。
另一種選擇是在模型上放置一個方法來做你想做的事。這裏有一個例子:
@property
def short_title(self):
return '%s...' % self.title[:40]
你然後能在你的模板來引用,因爲這在任何地方{{object.short_title}}。
謝謝,已添加到我自己的/ r/todayLarned – sadegh 2009-11-19 16:17:28
我建議增加一個新屬性「adjusted_title」每個對象
for item in your_query_set:
if(len(item.title) > 40):
item.adjusted_title = item.title[0:40] + "..."
這可以工作,但可能意味着通過查詢集進行不必要的循環。將模型中的邏輯放在模型中的方法可能會更好,就像我建議要保存一個不必要的循環,並且在其他地方需要邏輯。 – sheats 2009-11-19 15:47:26
- 1. 修改查詢結果與PHP
- 2. 例外:查詢結果集是不可修改
- 3. 查詢Lavavel結果集
- 4. Mysql - 修改結果數據集
- 5. 初學者:檢查查詢集結果
- 6. 多個表和修改的查詢集
- 7. 在django中修改默認查詢集
- 8. 修改結果表
- 9. 修改SQL結果
- 10. 大型Mysql查詢(加入結果並修改字符串)
- 11. 如何在返回之前修改Rails ActiveRecord查詢結果?
- 12. 如何解析SQL查詢結果並使用C#修改它?
- 13. SQLite3 - 修改查詢以輸出單行總計結果
- 14. 刪除查詢集的結果
- 15. SQL查詢含有2的結果集
- 16. Hibernate JPA本機查詢結果集
- 17. 格式化LINQ查詢結果集
- 18. 過濾結果集LINQ查詢
- 19. 使用LINQ從查詢,其結果集
- 20. 測試sp_send_dbmail查詢的結果集?
- 21. 查詢的結果集太大
- 22. 處理查詢中的空結果集
- 23. TSQL與多個結果查詢集
- 24. DISTINCT在MySQL查詢去除結果集
- 25. 過濾器查詢結果集合
- 26. 集團從兩個查詢的結果
- 27. postgresql查詢上的大型結果集
- 28. 授權查詢結果集無效
- 29. SQL查詢返回以下結果集
- 30. 返回多個結果集的查詢
你是想保存這些更改到數據庫,或者只顯示他們的網頁上? – sheats 2009-11-19 15:22:27