Django Отношения ManyToMany (m2m) в таблице результатов

Hej!

У меня проблемы с отображением отношений M2M в моей визуализированной таблице результатов в Django. Я знаю, что для этого нужно пройти через модели, но что-то не работает.

У кого-нибудь есть идеи, что я делаю неправильно?

# plants/models.py

class Plant(models.Model):
    name = models.CharField(
        max_length=200
    )
    plant_type = models.ForeignKey(
        PlantType,
        on_delete=models.SET_NULL,
        blank=True,
        null=True,
        related_name="plant_type",
    )
    used_xducts = models.ManyToManyField(
        Xduct,
        through="UsedXduct",
        blank=True,
        related_name="used_in_plant"
    )


class PlantType(models.Model):
    name_english = models.CharField(
        max_length=200,
        blank=True
    )


class UsedXduct(models.Model):
    class InputOrOutputChoices(models.TextChoices):
        IN = "in", _("input")
        OUT = "out", _("output")
        OWN = "own", _("own technical need")
    plant = models.ForeignKey(
        Plant,
        on_delete=models.PROTECT
    )
    xduct = models.ForeignKey(
        Xduct,
        on_delete=models.PROTECT
    )

    def xduct_str(self):
        return self.xduct

    def __str__(self):
        return f"Used xduct of {self.plant} of {self.xduct}"
xducts/models.py
class Xduct(models.Model):
    """(temporary) List of all xducts"""
    code = models.CharField(
        max_length=20,
        unique=True
    )   
    name_english = models.CharField(
        max_length=200,
        unique=True
    )

    def __str__(self):
        return f"{self.code}"


# plants/template.html

{% block content %}
 
        <div class="row">
            <div class="col-md">
                <div class="card card-body">
                    <h5>Plants</h5>
                </div>

                <div class="card card-body">
                    <table class="table table-sm">
                        <tr>
                            <th>Name</th>
                            <th>Plant type</th>
                            <th>Used Xducts</th>

                        </tr>

                        {% for i in plants %}
                            <tr>
                                <td>{{i.name}}</td>
                                <td>{{i.plant_type}}</td>
                                <td>{{i.used_in_plant.xduct}}</td>
                            </tr>

                        {% endfor %}

                    </table>
                </div>
            </div>


{% endblock %}

'name' и 'plant_type' не представляют проблемы в этом примере. Я пробовал i.UsedXducts.xduct, i.used_xduct.xduct, i.Xduct.xduct

Есть ли у меня ошибка в рассуждениях?

Большое спасибо за любые идеи!

Вернуться на верх