Я пытаюсь получить лучший город в 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')
  1. values('customer__city') -> получить набор запросов, содержащий словарь с 'customer__city' в качестве ключа и соответствующим названием города в качестве значения.
  2. annotate('count'=Count('id')) -> создает ключ 'count' для каждого объекта, а количество повторений названия города будет соответствующим значением.
  3. .
  4. order_by('-count') -> сортирует весь набор запросов в порядке убывания 'count', что обеспечивает городу наибольший порядок.
Вернуться на верх