相关疑难解决方法(0)

Jinja2:在循环内更改变量的值

我想在循环中更改在循环外声明的变量的值.但总是在改变,它将初始值保持在循环之外.

{% 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)

这呈现: …

python jinja2

62
推荐指数
2
解决办法
4万
查看次数

Jinja2嵌套循环计数器

{% 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一样,他们不清楚设置变量范围.唯一提到范围的是内部块的"范围"修饰符,但我想它不能应用于所有内容......疯狂.

jinja2 flask

12
推荐指数
2
解决办法
2万
查看次数

Django - 默认字段值取决于其他字段值


我在设置默认字段值时遇到问题.我想做的事?
我希望类包中的价格是类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)

非常感谢!!!

python django default-value

8
推荐指数
2
解决办法
1892
查看次数

如何在 Jinja2 中选中复选框

我正在学习 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)

我的问题是:

  1. 如何根据变量 proxy_mode 的值检查 proxy_mode 无线电输入?
  2. 如何根据变量proxy_node的值检查proxy_node无线电输入?例如,如果 proxy_node 等于 …

html python jinja2 flask

4
推荐指数
1
解决办法
8475
查看次数

标签 统计

jinja2 ×3

python ×3

flask ×2

default-value ×1

django ×1

html ×1