Django şablon filtresi aşağıdaki Django şablon değişkeni olarak
<div>sddfdsfsdfsdf sd fsdf sd fsdf </div><a>This link</a><img src="some source" />
Django şablon filtresi aşağıdaki Django şablon değişkeni olarak
<div>sddfdsfsdfsdf sd fsdf sd fsdf </div><a>This link</a><img src="some source" />
var gibi HTML çıktı olurdu aşağıdaki
{{myvar|safe}}
Django şablon Filtreler aracılığıyla html etiketlerini kaldırmak mümkün sının html etiketlerini kaldırmak striptags
’a baktın mı? Bu şablon filtre HTML etiketleri çıkarılmasını isteyip bir regex kullandığı
sddfdsfsdfsdf sd fsdf sd fsdf This link
Ama dikkat edin: O (elbette This
eksi dizim) bu işe HTML'nizi açacak. As we know, regex'leri çoğu zaman HTML ile çalışmak için doğru araç değildir. HTML’niz dışarıdan geliyorsa, gerçek bir HTML ayrıştırıcısıyla, örn. lxml.html.clean
.
striptags
tüm [X] HTML etiketlerini şerit mümkün olan tüm çabaları yapar. Örneğin
: myvar <b>Joel</b> <button>is</button> a <span>slug</span>
ise
{{ myvar|striptags }}
çıkış Joel is a slug
olacaktır.
Ayrıca python kodunuzdaki strip_tags'ları bir formda da kullanabilirsiniz. Form Temiz yöntemde Örneğin
:
class AddressForm(forms.ModelForm):
class Meta:
model = Address
def clean(self):
from django.utils.html import strip_tags
cleaned_data = super(AddressForm, self).clean()
cleaned_data['first_name'] = strip_tags(cleaned_data.get('first_name'))
return cleaned_data
Ayrıca, bu basit Django HTML Sanitizer App göz atın Django HTML Utils bakınız.
Görüntü etiketlerine ne olur ...... – Rajeev
, tüm etiketleri çıkarır ve yalnızca DOM-konuşmasında 'TextNode'' olarak kabul edilenleri bırakır. Böylece görüntünüz hiçbir iz bırakmadan kaldırılacaktır. –
"{{myvar | striptags | safe}}" işlevini kullanmanızı öneririm. Böylece, gibi HTML öğeleri Django tarafından engellenmez, ancak HTML kodunda saklanır ve web tarayıcısı tarafından oluşturulur. 'Striptags' filtresinin aslında var olmayan HTML etiketlerini çıkardığını unutmayın. – Luca