Получение количества вариантов в поле выбора Django ChoiceField
У меня есть поле choiceField в модели, и я хочу получить количество каждого выбора на моей домашней странице. Я также хочу, чтобы подсчеты были кликабельными, чтобы при нажатии на них, они перенаправляли меня на страницу, содержащую все здания, связанные с ними. Вот мой models.py
class Property(models.Model):
landlord = models.ForeignKey(User, related_name="lanlord", on_delete=models.CASCADE)
title = models.CharField( max_length= 500 )
description = models.CharField( max_length= 50000 )
BUILDING_CHOICES = [
("Flat" , "Flat" ),
("Duplex" , "Duplex" ),
("Bungalow" , "Bungalow" ),
("Apartment" , "Apartment" ),
("Shop" , "Shop" ),
("Warehouse" , "Warehouse" ),
("Storey Building" , "Storey Building" ),
]
buildingtype = models.CharField( max_length=20, choices=BUILDING_CHOICES, default='Bungalow' )
Это моя домашняя страница
<ul class="home4_iconbox mb0">
<li class="list-inline-item"><div class="icon"><span class="flaticon-house"></span><a> Storey Building</a></div></li>
<li class="list-inline-item"><div class="icon"><span class="flaticon-house-1"></span><a>Shop</a></div></li>
<li class="list-inline-item"><div class="icon"><span class="flaticon-house-2"></span><a>Duplex</a></div></li>
<li class="list-inline-item"><div class="icon"><span class="flaticon-building"></span><a>Apartment</a></div></li>
</ul>
Это мой views.py
def home(request,):
q = request.GET.get('q') if request.GET.get('q') != None else ''
props = Property.objects.filter(
Q(title__icontains = q) |
Q(address__icontains = q) |
Q(buildingtype__icontains = q)
)
property = Property.objects.all()
properties = Property.objects.filter(is_approved = True)[:5]
context = {"props":props, "property": property, "properties": properties}
return render(request, "base/index.html", context)
Используйте внешний ключ вместо поля выбора