在Python中将一个可变对象设置为函数中参数的默认值是一个常见的错误.以下是David Goodger撰写的优秀文章中的一个例子:
>>> def bad_append(new_item, a_list=[]):
a_list.append(new_item)
return a_list
>>> print bad_append('one')
['one']
>>> print bad_append('two')
['one', 'two']
Run Code Online (Sandbox Code Playgroud)
之所以出现这种情况的解释是在这里.
现在我的问题是:这个语法有一个很好的用例吗?
我的意思是,如果遇到它的每个人都犯了同样的错误,调试它,理解问题,从而试图避免它,这种语法有什么用?
我正在循环推车项目,并希望将数量乘以单位价格,如下所示:
{% for cart_item in cart.cartitem_set.all %}
{{cart_item.quantity}}*{{cart_item.unit_price}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
有可能做那样的事吗?任何其他方式!谢谢
我在模板中有两个嵌套的 for 循环。我需要获取自父 for 循环开始以来进行的总迭代次数。仅当子 for 迭代时,计数器才需要递增。
例如:
每个循环从 1 到 3(包含)
父循环 - 第一次迭代
子循环 - 第三次迭代
想要的结果:3
父循环 - 第二次迭代
子循环 - 第一次迭代
想要的结果:4
有什么方法可以使用标准 Django 模板标签来做到这一点吗?如果没有,我有什么选择?
我需要在每个循环中生成唯一的 id,而不是````城市选择```
{% for form in formset.forms %}
<tr>
{% for field in form %}
<td class="input_td{% if field.errors %} error_td{% endif %}">
<select name="city-select" id="city-select"></select>
</td>
{% endfor %}
<td class="delete_formset_td"></td>
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在这里生成它?
我需要这样的 ids :
输出:
city-1
city-2
city-3
...
Run Code Online (Sandbox Code Playgroud)