Итак, у меня есть эти модели.
class Domains(models.Model):
'''Domain listing for ISO'''
domain_id = models.CharField(max_length=10)
domain_title = models.TextField()
def __str__(self):
return self.domain_id
#sample data output would be
id title
A5 A5 title
A6 A6 title
class SubDomain(models.Model):
'''Sub-domain listing for ISO. Relationship with Domain'''
domain_key = models.ForeignKey(Domains, on_delete=models.CASCADE)
subDomain_id = models.CharField(max_length=10)
subDomain_title = models.TextField()
subDomain_objective = models.TextField()
def __str__(self):
return self.subDomain_id
#sample data output would be
id title objective
A5.1 A5.1 title A5.1 objective
A6.1 A6.1 title A6.1 objective
Мои представления в настоящее время являются простыми запросами, которые используют objects.all или objects.filter для сохранения списка в переменной. Эта точка зрения не полная, но я просто проверяю на этом этапе. Затем эта переменная зацикливается в моих шаблонных тегах так:
table class="table table-sm">
<tr>
<th>Domain ID</th>
<th>Sub Domain ID</th>
<th>Sub domain Title</th>
<th>Sub domain objective</th>
</tr>
{% for record in a6titles %}
<tr>
<td colspan=1>A6</td>
<td>{{ record.subDomain_id }}</td>
<td>titles: {{ record }}</td>
</tr>
{% endfor %}
Теперь, как вы можете себе представить. Когда таблица заполняется. Идентификатор домена зацикливается и заполняет его результаты. То же самое с поддоменами.
Как создать таблицу так, чтобы она смотрела на идентификатор домена. Видит A5, а затем заполняет только поддомен A5.1 (идентификатор, заголовок и цель) в соответствующих столбцах. Затем он видит A6 и так далее.
Я думаю о двух вариантах. 1. Я создаю функцию в своих представлениях с помощью if / else и выводю ее в словарь. 2. Я использую что-то вроде djangotables2. Я не хочу узнавать что-то новое, так как я все еще постигаю основные принципы c Django.