【问题标题】:How can you dynamically set initial value of form select field at the time of rendering django template如何在渲染django模板时动态设置表单选择字段的初始值
【发布时间】:2020-12-14 14:37:29
【问题描述】:

我需要多次渲染选择字段,每个字段都有预选值。

现在我的问题是: 如何在渲染django模板时动态设置django form selectfield的初始值??

我的表格:

class RequestProdApvr(forms.Form):
    product = forms.ModelChoiceField(queryset=Product.objects.all().order_by('code'), label='', required=False)

我必须在列表视图的多行中使用此表单,并根据保存的数据预填充值。

我在 SO 中搜索了解决方案,但没有一个符合我的要求...

Django. Initial value of Choice Field dynamically

Dynamically set default form values in django

因此我在这里发布单独的问题...

【问题讨论】:

    标签: django django-forms django-templates


    【解决方案1】:

    您必须遍历选择选项并检查当前对象是否等于后端选项,以便您可以将其标记为选中:

    <select name="field_name" class="form-control" id="id_field_name">
        {% for id_obj, obj in form.field_name.field.choices %}
        {% if obj == context_obj.property%}
        <option value="{{id_obj}}" selected="">{{obj}}</option>
        {% else %}
        <option value="{{id_obj}}">{{obj}}</option>
        {% endif %}
        {% endfor %}
    </select>
    

    我猜这就是你想要达到的目标。

    【讨论】:

      猜你喜欢
      • 2022-12-05
      • 2011-04-25
      • 2018-08-21
      • 1970-01-01
      • 2010-10-23
      • 2019-03-20
      • 2018-11-26
      • 2013-04-06
      • 1970-01-01
      相关资源
      最近更新 更多