【发布时间】:2020-10-08 13:29:34
【问题描述】:
我的模型中有这个:
tank0 = models.ForeignKey(nb200V1, on_delete=models.SET_NULL, null=True, blank=True, related_name='pmp300Tank0')
tank0MQTT = models.BooleanField(default = False)
tank1 = models.ForeignKey(nb200V1, on_delete=models.SET_NULL, null=True, blank=True, related_name='pmp300Tank1')
tank1MQTT = models.BooleanField(default = False)
tank2 = models.ForeignKey(nb200V1, on_delete=models.SET_NULL, null=True, blank=True, related_name='pmp300Tank2')
tank2MQTT = models.BooleanField(default = False)
tank3 = models.ForeignKey(nb200V1, on_delete=models.SET_NULL, null=True, blank=True, related_name='pmp300Tank3')
tank3MQTT = models.BooleanField(default = False)
tank4 = models.ForeignKey(nb200V1, on_delete=models.SET_NULL, null=True, blank=True, related_name='pmp300Tank4')
tank4MQTT = models.BooleanField(default = False)
tank5 = models.ForeignKey(nb200V1, on_delete=models.SET_NULL, null=True, blank=True, related_name='pmp300Tank5')
tank5MQTT = models.BooleanField(default = False)
tank6 = models.ForeignKey(nb200V1, on_delete=models.SET_NULL, null=True, blank=True, related_name='pmp300Tank6')
tank6MQTT = models.BooleanField(default = False)
我想在我的模板中创建一个 for 循环来生成 html 并在 for 循环中使用 i 设置变量,如下所示:
{% for i in "0123456" %}
<div class="row" style="margin-top:10px">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
Tank # {{forloop.counter}}
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-2 col-md-3 col-sm-4 align-self-center">
<label><b>Serial:</b></label>
<a href="#" id="{{obj.serial}}_tank{{i}}">{{obj.tank{{i}}.serial}}</a>
<small id="{{obj.tank{{i}}.serial}}_serial_ts" class="form-text text-muted">{{obj.tank{{i}}.timeStamp}}</small>
</div>
</div>
</div>
</div>
</div>
</div>
{% endfor %}
有没有办法做到这一点?
【问题讨论】:
-
我认为问题在于建模。这看起来像一个一对多的关系。因此,除了使用一些
tank...ForeignKeys,您可能应该让nb200V1引用模型,这样零个、一个或多个nb200V1s 可以引用该模型。