我希望有一个条款和条件的复选框,其标签应包含指向页面的链接,以及条款和条件.
以下字段将包含标签转义的标签.
BooleanField(label="I agree to <a href='terms-conditions.html'>terms&conditions</a>")
Run Code Online (Sandbox Code Playgroud)
ken*_*ken 30
从utils.safestring导入django的mark_safe,如http://www.kelvinism.com/howtos/using-html-django-form-label/所述.
从链接:
from django.utils.safestring import mark_safe
from django import forms
class AccountForm(forms.Form):
name = forms.CharField(widget=forms.TextInput(),
max_length=15,
label=mark_safe('Your Name (<a href="/questions/whyname/" target="_blank">why</a>?)'))
Run Code Online (Sandbox Code Playgroud)
aig*_*ius 11
这是关于表单迭代主题的Django文档的正确链接.
你想要的是:
<form method="post">
{% for field in form %}
<p>
{{ field.errors }}
{{ field.label_tag }}: {{ field }}
{% if field.name == "toc" %}
<a href="{% url terms %}">Terms and Conditions</a>
{% endif %}
</p>
{% endfor %}
<p><input type="submit" value="Send message" /></p>
</form>
Run Code Online (Sandbox Code Playgroud)
如果不想对URL进行硬编码,可以从构造函数中设置字段的标签:
from django import forms
from django.core.urlresolvers import reverse_lazy
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext as _
class ExampleForm(forms.Form):
name = forms.CharField(max_length='255', label=_('Name'))
forms.BooleanField(label=_("Terms and Conditions"), required=False)
def __init__(self, **kwargs):
super(ExampleForm, self).__init__(**kwargs)
terms_and_conditions = reverse_lazy("terms_and_conditions")
self.fields['read_terms'].label = mark_safe(_("I have read and agree with the "
"<a href='%s'>Terms and Conditions</a>")) % (terms_and_conditions)
Run Code Online (Sandbox Code Playgroud)
我不确定 django 是如何工作的,但是如果上面代码中的标签创建了一个:
<label>I agree to terms&conditions</label>
Run Code Online (Sandbox Code Playgroud)
element 那么这不是这样做的方法。
默认情况下,标签元素固有地选择关联的字段,因此您将混合 2 个单击操作(一个检查,另一个打开窗口)
我只想添加您的标签,并在其旁边添加一个 a:href。
<label>I agree to terms&conditions</label> (<a href="terms-conditions.html">terms&conditions</a>)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14564 次 |
| 最近记录: |