如何在渲染django模板时动态设置表单选择字段的初始值
Posted
技术标签:
【中文标题】如何在渲染django模板时动态设置表单选择字段的初始值【英文标题】:How can you dynamically set initial value of form select field at the time of rendering django template 【发布时间】: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
因此我在这里发布单独的问题...
【问题讨论】:
【参考方案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>
我猜这就是你想要达到的目标。
【讨论】:
以上是关于如何在渲染django模板时动态设置表单选择字段的初始值的主要内容,如果未能解决你的问题,请参考以下文章