Я пытаюсь сгруппировать некоторые результаты запроса в шаблон Django.Я попытался перегруппировать безуспешно.
У меня есть модель тегов, у которой есть родительский тег, как показано ниже, и он связан с моей моделью Board, которая также представлена ниже:
class BoardTags(models.Model):
name = models.CharField(max_length=150, null=True)
description = models.TextField(default='', null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
parent_tag = models.ForeignKey('self', null=True, blank=True)
def __str__(self):
return self.name
class Board(models.Model):
title = models.CharField(max_length=100, unique=False, blank=False, verbose_name=('Board_Title'))
sub_title = models.CharField(max_length=100, blank=False)
board_description = models.TextField(max_length=300, blank=False)
tags = models.ManyToManyField(BoardTags, blank=True, related_name='board')
Это представление, которое я использую для созданиядоска (это где теги доски должны отображаться):
class CreateBoard(LoginRequiredMixin, SelectRelatedMixin, generic.CreateView):
model = models.Board
template_name = 'board/board_form.html'
select_related = ("user")
form_class = BoardForm
Я использую этот виджет 'tags': forms.CheckboxSelectMultiple (), чтобы попытаться получить этот результат:
Родительским тегом будут «Темы», и внутри вкладки навигации мне бы хотелось иметь флажки для различных тегов, которые разделяют этот родительский тег.
Есть какие-нибудь идеи о том, как это сделать?
РЕДАКТИРОВАТЬ: Я думаю, что я неправильно понимаю перегруппировку, возможно, потому что я не могу заставить его работать как обычный список.Вот что я пробовал:
{% regroup form.tags by form.parent_tag as tags_list %}
<ul>
{% for parent_tag in tags_list %}
<li>{{ parent_tag.grouper }}
<ul>
{% for tag in parent_tag.list %}
<li>{{ tag.name }}: {{ tag.description }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>