这是我的 HTML代码:
{% for divida in Contrato %}
{% for empresa in Empresa %}
<li>
{{empresa.cnpj}} | {{divida.cnpj}} |
{% if empresa.cnpj == divida.cnpj %}
True
{% else %}
False
{% endif %}
</li>
{% endfor %}
{% endfor %}
这是我的结果:
1. 52136308000162 | 72718870000101 | False
2. 05574445000107 | 72718870000101 | False
3. 72718870000101 | 72718870000101 | False
4. 52136308000162 | 05574445000107 | False
5. 05574445000107 | 05574445000107 | False
6. 72718870000101 | 05574445000107 | False
7. 52136308000162 | 52136308000162 | False
8. 05574445000107 | 52136308000162 | False
9. 72718870000101 | 52136308000162 | False
第3、5和7行应为True。
我想念什么?
Empresa模型:
class Empresa(models.Model):
cnpj = models.CharField(max_length=14, primary_key=True)
def __str__(self):
return self.cnpj
Contrato模型:
class Contrato(models.Model):
contrato = models.CharField(max_length=150, null=False)
cnpj = models.ForeignKey('users_c2p.Empresa', on_delete=models.PROTECT, null=False)
答案 0 :(得分:0)
这两个值永远不会相等。一个是字符串,另一个是Empresa对象。
您可以通过与相关对象上的相关字段进行比较来解决此问题:
{% if empresa.cnpj == divida.cnpj.cnpj %}
但我根本不明白您为什么这样做。获取与Contrado相关的Empresa对象的方法是完全完成您已经做的事情:divida.cnpj
。无需单独遍历所有Empresas,直到找到与您已有的Empresas相匹配的东西。