现在我有一个包含Select字段的ModelForm。
class _form(forms.ModelForm):
class Meta:
model= _model
widgets={
'choice': forms.Select(),
}
由于某种原因,我想在select中隐藏一些选项。我不想使用js隐藏目标选项,同时在加载模板之前找到隐藏选项的方法。
我尝试在模板中使用以下方法,但失败了。
{% for val, name in form.choice.choices %}
{% if val != target_val %} <option value="{{val}}">{{name}}</option>{% endif %}
{% endfor %}
我想知道实现我需要的正确方法。或者你可以给我一个更好的解决方案。
谢谢!
答案 0 :(得分:1)
你做得对,问题就是循环
尝试:
{% for val, name in form.fields.choice.choices %}
而不是:
{% for val, name in form.choice.choices %}
{% if somevar != "x" %}
This appears if variable somevar does not equal the string "x",
or if somevar is not found in the context
{% endif %}