Django 系列- 如何在{{value}}中完整移除html tag?

How to completely remove the tags before truncating?

在本範例你會學到:

  • 部落格或網誌的文章清單中簡短顯示內容(點擊看上集)
  • Django filters(過濾器) 的使用
    • striptags

在本範例你需要先準備好:

  • 可以使用 Django的環境或簡單範例
  • 本環境測試使用 Django==3.0.7 以上(含)

在顯示部落格的文章清單時常常會有顯示每篇文章開頭的簡短文字需求,內建的 truncatechars 將會是你的好朋友!不過使用的時候這方法卻會把 HTML Tag 字元都算進去,使用起來相當不便,還要自己計算位置並搭配slice一起使用,本文將會幫你解決此問題。

更詳盡的搭配使用說明請見上一期 Django 系列- 如何在清單中截斷、縮短(truncatechars)顯示的文章文字?,搭配服用更有效。

1. striptags

假設資料讀出來的時候是:

<p>hello, word</p>

使用 striptags的方法:

{{ content.text|striptags|truncatechars:3 }}

結果將會顯示兩個字母(記得 filter 會自動 -1 喔!)

he

有看上集的朋友應該會有點疑惑這個方法跟 truncatechars_html差別是什麼呢?

{{ content.text| truncatechars_html:7 }}

比較專區:

truncatechars_html 將會忽略前後的標籤,取得中間的字做處理,但標籤還是存在的,並沒有被拿掉或刪除!而使用 striptags的方法他會直接將 html 直接拿掉,在對字詞做處理,這是他們最大的不同喔!

參考資料

官網:

https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#striptags

stackoverflow

https://stackoverflow.com/questions/48662262/how-can-i-truncate-text-and-remove-html-tags-in-django-template

若有任何問題與指教歡迎與我聯繫,若覺得我的內容不錯麻煩幫我隨便點個廣告,謝謝。


 上一篇
NLP 系列- 如何在word2vec訓練時讓WikiCorpus保留數字(digit)? NLP 系列- 如何在word2vec訓練時讓WikiCorpus保留數字(digit)?
How to get the wikipedia corpus text with digits by using gensim wikicorpus?在本範例你會學到: 訓練 word2vec 時可以保留數字 在本範例你需要先準備好:
2021-02-04
下一篇 
pyspark系列-如何使用pyspark連結clickhouse教學 pyspark系列-如何使用pyspark連結clickhouse教學
How to use pyspark connect with cilckhouse to read?在本範例你會學到: 於 GCP Dataproc 環境中加入ru.yandex.clickhouse:clickhouse-jdbc:0
2020-10-14
  目錄