如何在Django的表单中将radiogroup select与普通输入相结合

2024-05-03 20:35:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Django创建一个类似的表单,你可以在Google日历的提醒重复部分找到它。 enter image description here

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的表格呢

另外,如果重要的话,我会用脆的形式


Tags: ofthedjangoidbyrequiredformswidget
2条回答

此外,您可以循环模板中的字段,并根据需要绘制它们。种类:

{% 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元素之间的模板中绘制它们

https://docs.djangoproject.com/es/1.9/topics/forms/

您需要对包含html的元素使用^{}

   ENDS = (
        (1, 'Never'),
        (2, mark_safe('After <input type="text" id="after_id"> occuriencies')),
        (3, mark_safe('<input type="text" id="ondate_id">'))
        )

相关问题 更多 >