Сравнение двух переменных в HTML в Django - PullRequest
1 голос
/ 12 июня 2019

Это мой 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должно быть Истиной ..

Что мне не хватает?

Модель для 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)

1 Ответ

0 голосов
/ 12 июня 2019

Эти два значения никогда не будут равны.Один - это строка, а другой - объект Empresa.

Вы можете исправить это, сравнив соответствующее поле соответствующего объекта:

{% if empresa.cnpj == divida.cnpj.cnpj %}

, но я совершенно не могу понять, почему вы это делаете.Чтобы связать объект Empresa с Contrado, нужно сделать именно то, что вы уже сделали: divida.cnpj.Нет необходимости отдельно проходить через все Empresas, пока не найдете тот, который у вас уже есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...