我想要一个用于条款和条件的复选框,其标签应包含指向带有条款和条件的页面的链接。
以下字段将包含带有转义标签的标签。
BooleanField(label="I agree to <a href='terms-conditions.html'>terms&conditions</a>")
最佳答案
我也认为在标签中硬编码链接不是一个好的变体。所以最好使用render_to_string
来自 django.template.loader
.我们还需要考虑像 i18n 这样的懒惰。 keep_lazy_text
和 lazystr
符合我们对它的要求。所以结果它:
表格.py
from django.utils.functional import keep_lazy_text, lazystr
from django.template.loader import render_to_string
from allauth.account.forms import SignupForm
lazy_render_to_string = keep_lazy_text(render_to_string)
def lazy_render(template_name):
"""
Keep laziness for rendering to string from template
"""
return lazy_render_to_string(lazystr(template_name))
class ExtendedSignupForm(SignupForm):
accept_term_of_use = forms.BooleanField(
label=lazy_render('common/accept_term_of_use_label.html'),
required=True
)
field_order = [
'email',
'password1',
'password2',
'accept_term_of_use'
]
common/accept_term_of_use_label.html
Accept <a href="{% url "term_of_use" %}" target="_blank">Term Of Use</a> and <a href="privacy_statement" target="_blank">Privacy Statement</a>.
关于django - 如何在表单字段的标签中添加链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/386042/