2016-03-29 29 views
0

私はurlize filterをユーザーの投稿したコンテンツに使用していますが、レンダリングされるアンカー要素にクラスを追加したいと思います。動的に追加されたテンプレート要素にクラスを追加する

Djangoは現在

<a href="www.someurl.com">www.someurl.com</a> 

として

www.someurl.com 

をレンダリングしているしかし、私はそれは私がそれを行うことができますどのように

<a class="myClass" href="www.someurl.com">www.someurl.com</a> 

としてそれをレンダリングしたいですか?

答えて

1

カスタムテンプレートフィルタを使用して、レンダリングされた要素にクラスを追加できます。

from django import template 

register = template.Library() 

@register.filter(is_safe=True) 
def class_to_url(value): 
    return value.replace('<a ', "<a class='myClass' ">) 

そしてurlizeであなたのテンプレートでそれを使用します。

{{ text_url|urlize|class_to_url }} 

参照django docsカスタムテンプレートタグやフィルタ

+0

ための実際に私はそれを防ぐか、どのようにエスケープHTMLを返すのですか? –

+1

'is_safe' argを' filter() 'に渡すことで、値を安全とマークできます。更新された回答を確認してください。 – v1k45

+0

それは、ありがとう! –

関連する問題