Я пытаюсь получить лучший город в django через внешний ключ - Django
Здесь я пытаюсь получить из sql город с наилучшими показателями, где они связаны через forienkey.
Модели
class Orders(models.Model):
id = models.AutoField(primary_key=True)
customer = models.ForeignKey(Customers , on_delete=models.DO_NOTHING , blank = True , null = True)
product = models.ForeignKey('Products' , on_delete=models.DO_NOTHING )
class Customers(models.Model):
id = models.AutoField(primary_key=True)
username = models.CharField(max_length =100 , blank=True)
date_created_gmt = models.DateField(blank=True)
city = models.CharField(max_length=50 ,blank=True)
Итак, в основном таблица orders имеет несколько заказов с product_id и customer_id в качестве foriegnkey. Таблица customer имеет адрес каждого клиента с городом, пинкодом и т.д.
Итак, из этого мне нужен город с наилучшими показателями. названия городов, которые имеют наивысшие показатели в порядке убывания. буду признателен за вашу помощь. спасибо
Для того, чтобы получить количество клиентов, сделавших заказ в зависимости от города, можно использовать annotate.
Orders.objects.values('customer__city').annotate(count=Count('id')).order_by('-count')
- values('customer__city') -> получить набор запросов, содержащий словарь с 'customer__city' в качестве ключа и соответствующим названием города в качестве значения.
- annotate('count'=Count('id')) -> создает ключ 'count' для каждого объекта, а количество повторений названия города будет соответствующим значением. .
- order_by('-count') -> сортирует весь набор запросов в порядке убывания 'count', что обеспечивает городу наибольший порядок.