Реорганизация шаблонов Django

Я хочу перегруппировать это на основе ингредиентов. вот мой примерный результат, который я хочу получить

название_ингредиента, все названия остановок, связанные с этим ингредиентом, все долготы остановок, связанные с этим ингредиентом и так далее в одной строке таблицы.

модель

class SupplyChainStops(models.Model):
    ingredient = models.ForeignKey(Ingredients, null=True, on_delete=models.CASCADE)

    stop_name = models.CharField(max_length=1024, null=True, blank=True)
    stop_longitude = models.CharField(max_length=500, null=True, blank=True)
    stop_latitude = models.CharField(max_length=500, null=True, blank=True)
    is_supplier = models.BooleanField(default=False, blank=True, null=True)

    def __str__(self):
        return f'{self.stop_name}'

query

items = SupplyChainStops.objects.all()

шаблон

        {% for item in items %}
            <tr class="text-black">
                <td>{{ item.ingredient }}</td>
                <td>{{ item.stop_name }}
                <td>{{ item.stop_longitude }}
                <td>{{ item.stop_latitude }}

Вы можете установить related_name для поля ForeignKey.

class SupplyChainStops(models.Model):
    ingredient = models.ForeignKey(Ingredients, null=True, on_delete=models.CASCADE, related_name="supply_chain_stops")

Затем отправьте в шаблон все объекты ингредиентов, а не объекты supplychainstop.

        {% for ingredient in ingredients %}
        {% for item in ingredient.supply_chain_stops.all %}
            <tr class="text-black">
                <td>{{ item.ingredient }}</td>
                <td>{{ item.stop_name }}</td>
                <td>{{ item.stop_longitude }}</td>
                <td>{{ item.stop_latitude }}</td>
            </tr>
        {% endfor %}
        {% endfor %}
Вернуться на верх