如何访问脆皮表单模板中的键/值属性

时间:2020-05-19 22:41:43

标签: django django-forms django-crispy-forms

我已经为字段创建了一个自定义模板,但结构却很固定。

1-我知道如何访问字段标签(field.id_for_label),但是不知道如何访问键/值对(我希望有field.key,field.val,但它们不起作用)。

2-我想将col-3添加到字段中的每个键/值对(我可以这样做),但也想用<div class='row'> </div>标签包围四个字符的每个块,以便整齐地对齐,但找不到在模板中执行此操作的方法。

form.py

TOPICS = (
        ('ANI', 'Animals'),
        ('ART', 'Art'),
        ('COM', 'Communication'),
        ('CRI', 'Crime'),
        ('CUL', 'Culture/Society'),
        ('EDU', 'Education'),
        ('ENT', 'Entertainment'),
        ('ENV', 'Environment')
        [..cont..]
        )

preferred_topics = forms.MultipleChoiceField(choices=TOPICS, required=False, widget=forms.CheckboxSelectMultiple())

def __init__(self, *args, **kwargs):
        super(NeedsAnalysisForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(            
        'lessons_per_week', CustomCheckbox('preferred_topics'), 'teacher', 'grade',)
        )

custom_template.html

{% load crispy_forms_field %}

<div id='div_id_preferred_topics' class="form-group">
    <label for='id_preferred_topics'>{{ field.label }}</label>
    <div class>
        {% for field in form.preferred_topics %}
        <div class='col-3 custom-control custom-checkbox custom-control-inline'>
            <input type='checkbox' class='custom-control-input' name='preferred_topics' id='{{ 
            field.id_for_label }}' val=<!-- ??value?? -->>>
            <label class='custom-control-label' for='{{ field.id_for_label }}'><!-- ??key?? -->></label>
        </div>
        {% endfor %}
    </div>
</div>

谢谢。

0 个答案:

没有答案