#python #django #django-templates
#python #django #django-шаблоны
Вопрос:
У меня есть модель, в которой есть поле выбора, category
которое пользователь должен ввести при отправке записи. Я хотел бы создать представление, в котором каждая категория имеет свой собственный заголовок (только один раз), поэтому каждая уникальная категория будет иметь свой собственный заголовок, а затем отображать title
связанные с каждой категорией.
models.py
class Position(models.Model):
club_functions = Choices('Corporate Relations', 'Events amp; Conference', 'Marketing amp; Operations', 'Software Development', 'Product')
title = models.CharField(max_length=50)
category = models.CharField(choices=club_functions, max_length=30, blank=False)
description = models.TextField(blank=True)
spec_q1 = models.CharField(max_length=500)
spec_q2 = models.CharField(max_length=500)
views.py
def position_list_view(request):
all_objects = Position.objects.all()
context = {
'object_list' : all_objects
}
return render(request, "exec_list.html", context)
exec_list.html
{% for object.category in object_list %}
<h3>{{ object.category }}</h3>
<p>{{ object.title }}</p>
{% endfor %}
Есть идеи о том, как это сделать?
Ответ №1:
вы можете использовать перегруппировку
{% regroup object_list by category as category_list %}
<ul>
{% for category in category_list %}
<li>{{ category.grouper }}
<ul>
{% for position in category.list %}
<li>{{ position.title }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
Комментарии:
1. Именно то, что я искал. Начал играть с перегруппировкой после публикации этого, и это, похоже, лучшее решение. Спасибо.