Вложенный цикл for в html с использованием django для отображения информации из 2 различных моделей

У меня есть модель под названием Section и модель под названием SectionInfo. У Section есть одно поле, и это имя. Пользователь создает раздел, давая ему имя. SectionInfo имеет внешний ключ section_name, который связывает его с моделью Section. У меня есть несколько других полей внутри SectionInfo, таких как detail, date_created и т.д. Я пытаюсь достичь цели, используя цикл for для отображения названий разделов, которые уже были созданы внутри или над некоторыми карточками, которые я установил в html-шаблоне. Затем я хочу использовать вложенный цикл для сбора данных, связанных с названием раздела, которые пользователь вводит в модель SectionInfo. Я могу правильно отображать названия разделов, но проблема заключается в цикле внутри этого цикла. Одна и та же ссылка на детали отображается в каждом разделе, который был создан. Информация должна отображаться только в выбранном разделе, для которого она была сделана. Вот небольшой код, чтобы помочь вам понять, чего я пытаюсь достичь.

{% load bootstrap5 %}
{% load crispy_forms_tags %}
{% load static %}

{% block content %}
{% for i in object %}
{{ i.name}}
<div class="row">
    <div class="col-sm-4">

        <div class="card">
            <div class="card-body">
                
            {% for ii in object_2 %}
                
                <a href="{% url 'manufacturing:section_info_detail' i.id %}">Details</a>
                
                {% endfor %}
                
                
            </div>
        </div>
    </div>
</div>
{% endfor %}
{% endblock content %}

Вот что я получаю на экране что отображается

Вот представление, которое используется

def section_info_detail(request, pk):
    object = get_object_or_404(Section, id=pk)
    object_2 = get_object_or_404(SectionInfo, id=pk)
    context = {
        'object': object,
        'object_2':object_2,
    }
    return render(request, 'manufacturing/section_info_detail.html', context)

Модели


class Section(models.Model):
    name = models.CharField(max_length=30)
        
    def __str__(self):
        return self.name

class SectionInfo(models.Model):
    section_name = models.ForeignKey(Section, on_delete=models.CASCADE)
    detail = models.CharField(max_length=50)
    text = models.TextField(max_length=2000)
    date_created = models.DateField('Date created', auto_now_add=True)
    date_updated = models.DateField('Date updated', auto_now=True)

Forms

class SectionNameForm(forms.ModelForm):
    class Meta:
        model = Section 
        fields = [
            'name',
        ]

class SectionInfoForm(forms.ModelForm):
    class Meta:
        model = SectionInfo 
        fields = [
            'section_name',
            'detail',
            'text',
        ]

Если нужна еще какая-либо информация, сообщите. Заранее спасибо

<div class="row">
    {% for object in object_list %}
    <div class="col-sm-4">
        <div class="card">
            <div class="card-header">
                <h1><strong>{{ object.name }}</strong></h1>
                <hr>
            </div>
            <div class="card-body"> 
                <div class="row">       
                    {% for info in object.section_infos.all %}
                    
                    <ul id="list">
                        <li>{{ info.date_created }}</li> |
                        <li><a href="{% url 'manufacturing:section_info_detail' info.id %}">{{ info.detail|truncatechars:20 }}</a></li>
                        <hr>
                    </ul>
                {% endfor %}
                </div>
            </div>
        </div>
    </div>
    {% endfor %}
</div>

Это помогло мне. Итак, в основном моя проблема заключалась в том, что я не проникал достаточно далеко, чтобы получить данные, которые мне нужно было отобразить из шаблона. Также я изменил некоторые вещи в своих моделях и создал manyTomany и сквозное поле

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