1

テンプレート言語では、すべてのタグを削除することは可能ですが、段落 ( <p>) を持つものは保持されますか?

例:

与えられた:

<p>In this lesson, you will learn how to apply....</p>
<br>
<img src="http://example.com/photos/b/8/d/0/60312.jpeg" style="max-height : 700px ; max-width : 700px ; margin : 5px">
<p>After attending this workshop you will always be the star!</p>
<ul><li> Test </li></ul>                                  

最終出力:

<p> In this lesson, you will learn how to apply....</p>
<p>After attending this workshop you will always be the star!</p> Test
4

2 に答える 2

1

これは Python で、bleach のcleanmethodを使用して行うことができます。テンプレートで必要な場合は、テンプレート フィルターでラップすることができます。簡単な使い方:

import bleach

text = bleach.clean(text, tags=['p',], strip=True)

カスタム フィルターは次のようになります。

from django import template
from django.template.defaultfilters import stringfilter
import bleach

register = template.Library()

@register.filter
@stringfilter
def bleached(value):
    return bleach.clean(value, tags=['p',], strip=True)
于 2013-09-05T12:18:06.347 に答える
1

templatefilterと を使用して実行できますbeautifulsoup。BeautifulSoupをインストールします。templatetags次に、任意のアプリ内にフォルダーを作成しますfolder__init__.py空の内部templatetagsフォルダーを追加する必要があります。

フォルダ内にtemplatetagsファイルを作成しますparse.py

from BeautifulSoup import BeautifulSoup
from django import template    
register = template.Library()

@register.filter
def parse_p(html):
    return ''.join(BeautifulSoup(html).find('p')

template.html で

{% load parse %}

{{ myhtmls|parse_p }}

どこmyhtmlsですか

<p>In this lesson, you will learn how to apply....</p>
<br>
<img src="http://example.com/photos/b/8/d/0/60312.jpeg" style="max-height : 700px ; max-width : 700px ; margin : 5px">
<p>After attending this workshop you will always be the star!</p>
<ul><li> Test </li></ul>
于 2013-09-05T12:22:28.257 に答える