2017-04-04 16 views
0

私は多くの異なるテンプレートとテーブルで同じモデルを使用します。私はDjangoにテンプレート内のオブジェクトをレンダリングする方法を教えてくれるので、同じように書く必要はありません。html例えば、モデルのURLのDjangoモデル - html/render属性?

- 私は、テンプレートまたはテーブル内のそれを表示したい場合、私は(時にははるかに)書く必要があります:

<a href="{{ url.url }}">{{ url.site.name }}</a> 

レンダリング:

<a href="http://stackoverflow.com/questions/ask">Stackoverflow.com</a> 

それはです

{{ url }} # url is Url model object 

私は0123のような方法を追加できると思いますこのよう:

def render_object(self): 
    return mark_safe("""<a href="{}">{}</a>""".format(self.url,self.site.name)) 

とテンプレートで:

{{ url.render_object }} 

が、それは、いくつかの機能に組み込まれている場合、私は好奇心が強いです。私の知る限り、__unicode__(self)は作業を行いますが、管理者とシェルの表示名を混乱させるでしょう。

+0

https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/を確認しましたか? – itzMEonTV

答えて

0

カスタムテンプレートタグmy_tags.pyrender_urlに追加し、テンプレートにそのテンプレートタグ({% load my_tags %})をロードし、URLオブジェクトを{% render_url url %}に送信します。あなたのタグでhtmlテンプレートを使用するか、結果を文字列として返して返すことができます。詳細についてはdocumentationを確認してください。

関連する問題