Получение количества вариантов в поле выбора 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)
                                    

Используйте внешний ключ вместо поля выбора

Вернуться на верх