如何将Django自定义标签返回值作为django-widget-tweaks渲染字段的值?
嘿,我来帮你搞定这个问题!
因为 django-widget-tweaks 的 {% render_field %} 没法直接嵌套自定义模板标签,咱们得先把比特币价格存到模板变量里,再把变量传给表单字段的 value 属性,具体步骤如下:
第一步:捕获自定义标签的返回值
先在模板里调用你的比特币价格标签,用 as 关键字把返回结果存到一个变量中(记得先加载你存放这个标签的模块):
{% load widget_tweaks %} <!-- 先加载widget-tweaks标签 --> {% load btc_tags %} <!-- 替换成你存放btc_price_in_sgd标签的文件名,比如btc_tags.py就写btc_tags --> <!-- 把比特币SGD价格存到变量里 --> {% btc_price_in_sgd as btc_sgd_price %}
第二步:用render_field渲染字段并设置默认值
接下来在 {% render_field %} 里添加 value=btc_sgd_price 参数,这样表单字段就会用这个价格作为默认渲染值了:
{% render_field exchange_form.price class="your-css-class" value=btc_sgd_price %}
进阶小技巧(可选)
如果你的表单需要优先保留用户提交过的值,只有在字段为空时才用最新比特币价格,可以加个判断:
{% render_field exchange_form.price class="your-css-class" value=exchange_form.price.value|default:btc_sgd_price %}
这样用户提交过内容后,字段会显示用户输入的值;如果是首次加载表单,就显示最新的比特币SGD价格。
内容的提问来源于stack exchange,提问作者sarathkumar P M
相关产品推荐
相关产品推荐

