我想在循环中更改在循环外声明的变量的值.但总是在改变,它将初始值保持在循环之外.
{% set foo = False %}
{% for item in items %}
{% set foo = True %}
{% if foo %} Ok(1)! {% endif %}
{% endfor %}
{% if foo %} Ok(2)! {% endif %}
Run Code Online (Sandbox Code Playgroud)
这呈现:
Ok(1)!
Run Code Online (Sandbox Code Playgroud)
所以到目前为止唯一(坏)解决方案是:
{% set foo = [] %}
{% for item in items %}
{% if foo.append(True) %} {% endif %}
{% if foo %} Ok(1)! {% endif %}
{% endfor %}
{% if foo %} Ok(2)! {% endif %}
Run Code Online (Sandbox Code Playgroud)
这呈现: …
{% set cnt = 0 %}
{% for room in rooms %}
{% for bed in room %}
{% set cnt = cnt + 1 %}
{% endfor %}
{{ cnt }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
假设我们有嵌套循环,打印的cnt将始终为0,因为这是我们进入1st循环时定义的内容.当我们在内部循环中递增计数器时,它似乎只是内部循环的局部变量 - 因此它将在循环内部递增,但随后本地cnt消失.我们如何修改全局cnt ???
和Jinja2 doc一样,他们不清楚设置变量范围.唯一提到范围的是内部块的"范围"修饰符,但我想它不能应用于所有内容......疯狂.
我在设置默认字段值时遇到问题.我想做的事?
我希望类包中的价格是类Bill中priceNoTax的默认值.如您所见,所有三个类都是逻辑连接的.
示例:帐户1有一个ID为1的软件包.此软件包的价格为100.帐户1的priceNoTax的默认值为100.
如何做?我是相对较新的,所以我需要帮助.
models.py
class Packages(models.Model):
#other fields
price = models.IntegerField(validators=[MinValueValidator(1)], verbose_name="Price of package")
class Account(models.Model):
startDate = models.DateField(verbose_name="Start date")
finishDate = models.DateField(verbose_name="Finish date")
idPackage = models.ForeignKey(Packages, on_delete=models.CASCADE, verbose_name="Package")
class Bill(models.Model):
date = models.DateField(default=datetime.now())
tax = models.FloatField(default=0.20)
priceNoTax = models.IntegerField()
priceTax = models.FloatField(default=priceNoTax+(priceNoTax*tax))
idAccount = models.ForeignKey(Account, on_delete=models.CASCADE, verbose_name="Account")
def __str__(self):
return self.date
Run Code Online (Sandbox Code Playgroud)
非常感谢!!!
我正在学习 Flask 编程,不知道如何检查无线电输入,这是我正在使用的 html 模板:
<form method = "POST" action="/proxy_settings">
<input type="radio" name="proxy_mode" value = '0'>Auto
<br>
<input type="radio" name="proxy_mode" value = '1'>Manual
<br>
<br>
<section>
<table border="1">
<tr>
<td>Description</td>
<td>delay</td>
<td>select</td>
</tr>
{% for node_name, node_delay in node_list.items() %}
<tr>
<td>{{node_name}}</td>
<td>{{node_delay}}</td>
<td><input type="radio" name="proxy_node"></td>
</tr>
{% endfor %}
</table>
</section>
<br>
<section>
<button type="submit">CONFIRM</button>
</section>
</form>
Run Code Online (Sandbox Code Playgroud)
我在烧瓶中渲染这个模板,如下所示:
return render_template("base.html", node_number = ret["node_number"], proxy_mode = ret1["proxy_mode"], proxy_node = ret2["proxy_node"], node_list=ret3)
Run Code Online (Sandbox Code Playgroud)
我的问题是: