django - 如何在表单字段的标签中添加链接

标签 django

我想要一个用于条款和条件的复选框,其标签应包含指向带有条款和条件的页面的链接。

以下字段将包含带有转义标签的标签。

BooleanField(label="I agree to <a href='terms-conditions.html'>terms&conditions</a>")

最佳答案

我也认为在标签中硬编码链接不是一个好的变体。所以最好使用render_to_string来自 django.template.loader .我们还需要考虑像 i18n 这样的懒惰。 keep_lazy_textlazystr符合我们对它的要求。所以结果它:

表格.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/

相关文章:

python - 导入错误位于/cart/;没有名为 'cart.context_processors' 的模块

sql - Django JSONField,如何获取存储在列表中的值的出现次数

python - Django REST "GET"查询参数序列化器

python - Django ORM 内连接

django - 在 django form.init 数据中换行

python - Selenium -socket.error : [Errno 111] Connection refused

python - 工厂男孩工厂中错误的继承行为

python - 如何以编程方式设置 forms.CharField 文本?

python - 如何在 intellij python-project 中为 Django 设置源文件夹? (Python 插件)

Django Grappelli Tabular Inline 添加新行 TinyMCE 文本字段不可编辑