gpt4 book ai didi

Django ChoiceField 获取当前选中状态

转载 作者:行者123 更新时间:2023-12-02 08:28:26 24 4
gpt4 key购买 nike

我有一个简单的 ChoiceField,并且想要在模板渲染期间访问“选定”项目。

假设表单再次显示(由于其中一个字段出现错误),有没有办法执行类似的操作:

<h1> The options you selected before was # {{ MyForm.delivery_method.selected }} </h1>

(.selected() 不起作用..)

谢谢!

最佳答案

@Yuji建议bund_choice_field.data ,但是这将返回用户不可见的值(在 value="backend-value" 中使用)。在您的情况下,您可能希望用户可以看到文字值( <option>literal value</option> )。我认为没有简单的方法可以从模板中的选择字段获取文字值。所以我使用模板过滤器来做到这一点:

@register.filter(name='choiceval')
def choiceval(boundfield):
"""
Get literal value from field's choices. Empty value is returned if value is
not selected or invalid.

Important: choices values must be unicode strings.

choices=[(u'1', 'One'), (u'2', 'Two')
"""
value = boundfield.data or None
if value is None:
return u''
return dict(boundfield.field.choices).get(value, u'')

在模板中它看起来像这样:

<h1> The options you selected before was # {{ form.delivery_method|choiceval }} </h1>

更新:我忘记提及一件重要的事情,您将需要在选择值中使用 unicode。这是因为从表单返回的数据始终采用 unicode。所以dict(choices).get(value)如果在选择中使用整数,则不起作用。

关于Django ChoiceField 获取当前选中状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5109432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com