Nested Regroups with django with some attributes from none regroups

I have a django template that I have implemented regroups in it. I have a problem with how to display some of the attributes from my model into the template in a table.

I have a couple of issues to address:

  1. How can I display the remaining 4 attributes from the ImplementationMatrix model i.e implementation_status, implementation_summary, challenges, and wayforward to be displayed at the respective columns in the table on the template (index.html) without distorting the layout for each instance of ImplementationMatrix.
  2. The last for loop in the templates displays only one item for subactivity while I have more than subactivity for the respective activity.

Is there any better way of implementing all this?

My Models:

class Strategy(TrackingModel):
    """
    Stores all the strategies related to HSSP.
    """

    strategy_name = models.CharField(
        max_length=255, blank=True, null=True, default="")

    class Meta(TrackingModel.Meta):
        verbose_name_plural = "Strategies"

    def __str__(self):
        return self.strategy_name


class Intervention(TrackingModel):
    intervention_name = models.CharField(
        max_length=255, blank=True, null=True, default=""
    )
    strategy = models.ForeignKey(Strategy, on_delete=models.PROTECT)

    class Meta(TrackingModel.Meta):
        verbose_name_plural = "Interventions"

    def __str__(self):
        return self.intervention_name


class Activity(TrackingModel):
    activity_name = models.CharField(
        max_length=255, blank=True, null=True, default="")
    intervention = models.ForeignKey(Intervention, on_delete=models.PROTECT)

    class Meta(TrackingModel.Meta):
        verbose_name_plural = "Activities"

    def __str__(self):
        return self.activity_name


class SubActivity(TrackingModel):
    subactivity_name = models.CharField(
        max_length=255, blank=True, null=True, default=""
    )
    activity = models.ForeignKey(Activity, on_delete=models.PROTECT)

    class Meta(TrackingModel.Meta):
        verbose_name_plural = "Sub Activities"

    def __str__(self):
        return self.subactivity_name


class ImplementationMatrix(TrackingModel):
    """
    The class for keeping track the implementation of each action plan
    """
    IMPLEMENTATION_STATUS = (
        ("ON PROGRESS", "ON PROGRESS"),
        ("DONE", "DONE"),
        ("NOT DONE", "NOT DONE"),
    )

    implementation_summary = models.TextField()
    implementation_status = models.CharField(
        choices=IMPLEMENTATION_STATUS, max_length=100, default="",
        verbose_name="Matrix Implementation Status"
    )
    challenges = models.TextField()
    way_forward = models.TextField()
    sub_activity = models.ForeignKey(
        SubActivity, on_delete=models.PROTECT, verbose_name='Sub-Actions')

    def __str__(self) -> str:
        return self.sub_activity.activity.intervention.strategy.strategy_name

My View:

@login_required(login_url="/login")
def matrix_implementation_list(request: HttpRequest) -> HttpResponse:
    all_implementations = ImplementationMatrix.objects.filter(
            active=True, deleted=False).select_related(
                    'sub_activity',
                    'sub_activity__activity',
                    'sub_activity__activity__intervention',
                    'sub_activity__activity__intervention__strategy')

    context = {'all_implementations': all_implementations}
    return render(request, 'index.html', context)

My template (index.html)

<div class="card-body">

{% regroup all_implementations by sub_activity.activity.intervention.strategy.strategy_name as strategy_list %}

<!-- Start Table section -->
<div class="table-responsive table-bordered">
    <table class="table">
        <thead class="thead-light">
            <tr>
                <th>Policy Statement</th>
                <th>Action</th>
                <th>Sub-Actions</th>
                <th>Implementation Summary</th>
                <th>Implementation Status</th>
                <th>Challenges</th>
                <th>Way Forward</th>
            </tr>
        </thead>
        {% for strategy in strategy_list %}
        <tr>
            <td colspan="7" class="text-center"><strong>Priority Area {{ forloop.counter }}: {{ strategy.grouper }}</strong></td>
        </tr>
            {% regroup strategy.list by sub_activity.activity.intervention.intervention_name as intervention_list %}
            {% for intervention in intervention_list %}

                {% regroup intervention.list by sub_activity.activity.activity_name as activity_list %}
                {% for activity in activity_list %}

                        {% regroup activity.list by sub_activity.subactivity_name as subactivity_list %}
                        {% for subactivity in subactivity_list %}
                            <tr>
                                {% if forloop.first %}
                                    {% if forloop.parentloop.first %}
                                        <td rowspan="{{ intervention.list|length }}">
                                            {{ intervention.grouper|wordwrap:30|linebreaksbr }}
                                        </td>
                                    {% endif %}
                                        <td rowspan="{{ activity.list|length }}">
                                            {{ activity.grouper|wordwrap:30|linebreaksbr }}
                                        </td>
                                {% endif %}

                                    <td>
                                        {{ subactivity.grouper|wordwrap:20|linebreaksbr }}
                                    </td>
                                    
                                    <td></td>
                                    <td></td>
                                    <td></td>
                                    <td></td>

                            </tr>
            {% endfor %}
        {% endfor %}
    {% endfor %}
{% endfor %}
    </table>
</div>
<!-- end Table Section -->

</div>

Thanks in advance.

I was able to display the contents of the parent model in the last 'for loop' by doing the following:

<td>{{ subactivity.grouper|wordwrap:20|linebreaksbr }}</td>
<td>{{subactivity.list.0.implementation_summary|wordwrap:30|linebreaksbr}}</td>
<td>{{ subactivity.list.0.get_implementation_status_display }}</td>
<td>{{ subactivity.list.0.challenges|wordwrap:30|linebreaksbr }}</td>
<td>{{ subactivity.list.0.way_forward|wordwrap:30|linebreaksbr }}</td>

Back to Top