1

django model_fieldのプロパティに利用規約へのリンクを追加したいのですがhelp_text、基本的には次のようなコードを記述したいと思います。

 class UserRegisterData(models.Model):

    accepted_terms = models.BooleanField(
           ...
           help_text = u""Terms and conditions are avilable on <a href="{reg}">this iste</a> stronie""".format(reg = reverse("terms"))
     )

モデルがインスタンス化されている間はurlconfが準備されていないため、whisは明らかに失敗します。

ラップhelp_testインしようとしましSimpleLazyObjectたが、それでも機能しませんでした。

テンプレートコードには触れたくありません。文字列または設定のいずれかにURLをハードコーディングせずにこれを実現する方法はありますか?

4

2 に答える 2

6

django.core.urlresolvers.reverse_lazyこれが目的だと思います。
情報: 1.4 で django に追加されたので、以前のバージョンを使用している場合は、アップグレードする必要があります。


コメントで述べたように、URL 反転の「遅延」を解消する文字列の書式設定を回避する必要があります。

from django.utils.translation import string_concat

# ...

help_text = string_concat( # Happens to be lazy!
                u'Terms and conditions are available on <a href="', 
                reverse_lazy("terms"),
                u'">this site</a>"',
)
于 2013-01-02T19:21:38.260 に答える