在django模型help_text中反转url

jb.*_*jb. 0 django models urlconf

我想在help_textdjango model_field的属性中添加一个条款和条件的链接,基本上我想编写如下代码:

 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"))
     )
Run Code Online (Sandbox Code Playgroud)

显然失败了,因为在模型被实例化时urlconf没有准备好.

我甚至试图包装help_test,SimpleLazyObject但它仍然无法正常工作.

我宁愿不碰模板代码.如果没有在字符串或设置中硬编码url,有没有办法实现这个目的?

Tho*_*zco 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>"',
)
Run Code Online (Sandbox Code Playgroud)