我想在Django中创建一个类似于您可以在提醒重复部分中在Google日历中找到的表单。
class ReminderFlatForm(ModelForm):
WEEKS = (
(1, 'M'),
(2, 'T'),
(3, 'W'),
(4, 'T'),
(5, 'F'),
(6, 'S'),
(7, 'S'),
)
REPEATS_BY = (
(8, 'day of the month'),
(9, 'day of the week')
)
ENDS = (
(1, 'Never'),
(2, 'After <input type="text" id="after_id"> occuriencies'),
(3, '<input type="text" id="ondate_id">')
)
weeks = forms.MultipleChoiceField(
choices=WEEKS,
label="",
required=False,
widget=forms.CheckboxSelectMultiple
)
months = forms.MultipleChoiceField(
choices=REPEATS_BY,
label="",
required=False,
widget=forms.RadioSelect
)
ends = forms.MultipleChoiceField(
choices=ENDS,
label="Ends",
required=True,
widget=forms.RadioSelect
)
但是我没有HTML元素,而是纯文本。 我怎么能用Django的形式做到这一点?
另外,如果重要,我会使用脆皮形式。
答案 0 :(得分:2)
您需要对其中包含html的元素使用mark_safe
ENDS = (
(1, 'Never'),
(2, mark_safe('After <input type="text" id="after_id"> occuriencies')),
(3, mark_safe('<input type="text" id="ondate_id">'))
)
答案 1 :(得分:0)
此外,您可以循环模板中的字段并根据需要绘制它们。种类:
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }} {{ field }}
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
</div>
{% endfor %}
因此,您可以将字段定义为纯文本(在表单中),然后在模板之间将它们绘制在html元素之间。