Проблема с оператором if в шаблоне Django: две одинаковые строки не равны - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь создать таблицу на своем веб-сайте Django, которая будет показывать всем клиентам компании-консультанта и каждой компании, сколько контрактов у них еще есть на сегодняшний день

Кажется, мой код работает, но онпокажи мне две одинаковые строки и работай так, как будто они не равны

Я попытался сделать такую ​​логику: я делаю цикл for на каждом клиенте, чтобы построить мою таблицу (строку для каждого клиента)

В моем шаблоне для каждого клиента я сделаю forloop каждого контрата, чтобы проверить, является ли клиент-контракт клиентом: если это так, я увеличиваю var и в конце этого подзаголовка я могу показать, сколько миссий существует длякаждый клиент

Вот фрагмент кода моего шаблона:

    <table class="contenu">
        <thead>
            <th>Nom client</th>
            <th>Domaine</th>
            <th> Missions en cours </th>
            <th>Modification </th>
        </thead>
        <tbody>
    {% for client in listeClients %}
            <tr>
            <td>{{ client.nomClient }}</td>
            <td>{{ client.domaineClient }}</td>
            {% with compteur=0 %}
            {% for mission in missionsEnCours %}
                {% if client.nomClient == mission.client %}
                    {{compteur|augment}}
                    <script>alert("Ca incrémente")</script>
                {% else %}
                    <script>alert("{{ client.nomClient }} ---et--- {{ mission.client }}")</script>
                {% endif %}
            {% endfor %}
            <td>{{ compteur }}</td>
            <td><a href="">MODIFIER</a></td>
            </tr>
            {% endwith %}
    {% endfor %}
        </tbody>
    </table>

Я пытался отладить с предупреждением, и иногда он показывает мне две идентичные строки, но var compteur никогда не увеличивается, и этоникогда не показывать предупреждение "Ca incremente"

пример идентичных строк, отображаемых в предупреждении:

https://zupimages.net/up/19/41/p4aj.png

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

Моймодели:

class client(models.Model):
    nomClient = models.CharField(max_length=200)
    domaineClient = models.CharField(max_length=200)
    def __str__(self):
        return self.nomClient

class experiences(models.Model):
    nomMission = models.CharField(max_length=300)
    client = models.ForeignKey(client, on_delete=models.CASCADE)
    serviceConcerne = models.ForeignKey(services, on_delete=models.CASCADE)
    dateDebut = models.DateField('date de début de mission')
    dateFin = models.DateField('date de fin de mission', blank=True, null=True)
    nbJourHomme = models.IntegerField()
    contexteMission = models.TextField()
    descriptifMission = models.TextField()
    environnementMission =  models.TextField()
    collaborateurMission = models.ForeignKey(collaborateurs, on_delete=models.CASCADE, default='')
    def __str__(self):
        return self.nomMission

Мой взгляд:


def client_all(request):
    listeClients = client.objects.order_by("nomClient")
    missionsEnCours = experiences.objects.filter(dateFin__gte=datetime.date.today()).order_by("dateFin")
    return render(request, 'collab/client.html', {'listeClients': listeClients, 'missionsEnCours':missionsEnCours})

Большое спасибо:)

1 Ответ

1 голос
/ 10 октября 2019

mission.client является экземпляром client.

client.nomClient - текстовая строка.

Попробуйте mission.client.nomClient == client.nomClient

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