Python 按公式排序

Python 按公式排序,python,django,Python,Django,我在筛选商店。我需要按评级对商店进行排序,但评级是一个复杂的形式,我可以按一个字段对它们进行排序,但我不知道如何对每个字段进行计数 这是当前版本的订购率 shops = shops.order_by('rate') 但是你需要用公式代替场速率,这是怎么做到的 class Shop(models.Model): name = models.CharField(max_length=255, verbose_name=u'Название') time_begin = models.TimeFie

我在筛选商店。我需要按评级对商店进行排序,但评级是一个复杂的形式,我可以按一个字段对它们进行排序,但我不知道如何对每个字段进行计数

这是当前版本的订购率

shops = shops.order_by('rate')
但是你需要用公式代替场速率,这是怎么做到的

class Shop(models.Model):
name = models.CharField(max_length=255, verbose_name=u'Название')
time_begin = models.TimeField(max_length=255,
                              verbose_name=u'Время начала работы')
time_end = models.TimeField(max_length=255,
                            verbose_name=u'Время окончания работы')
phone = models.CharField(max_length=255, verbose_name=u'Телефон')
preview = models.FileField(upload_to='files/shop/preview')
delivery_price = models.IntegerField(verbose_name=u'Стоимость доставки')
min_price = models.IntegerField(verbose_name=u'Мин доставка', null=True)
min_order = models.IntegerField(verbose_name=u'Минимальный заказ')
del_wait_time = models.IntegerField(verbose_name=u'Время доставки минут')
is_always = models.BooleanField(verbose_name=u'Круглосуточно?',
                                default=True, blank=True)
is_cash = models.BooleanField(verbose_name=u'Наличными',
                              default=True, blank=True)
is_card = models.BooleanField(verbose_name=u'Картой курьеру',
                              default=True, blank=True)
is_online = models.BooleanField(verbose_name=u'Онлайн-оплата',
                                default=True, blank=True)
is_points = models.BooleanField(verbose_name=u'Еда за баллы',
                                default=True, blank=True)
is_sale = models.BooleanField(verbose_name=u'Акция',
                                default=True, blank=True)
is_new = models.BooleanField(verbose_name=u'Новый магазин',
                                default=True, blank=True)
notification = models.CharField(max_length=255,
                                verbose_name=u'Важное уведомление',
                                blank=True, null=True)
email = models.CharField(max_length=255, verbose_name=u'E-mail')
review_email = models.CharField(max_length=255,
                                verbose_name=u'Review E-mail',
                                default='null')
rate = models.FloatField(max_length=255, verbose_name=u'Рейтинг')
destination = models.CharField(max_length=255,
                               verbose_name=u'Местоположение')
specific = models.CharField(max_length=255, default='',
                            verbose_name=u'Специализация ресторана')
description = models.TextField(max_length=3000,
                               verbose_name=u'Описание')
cook = models.CharField(max_length=255, verbose_name=u'Имя повара',
                        blank=True, null=True)
image_cook = models.FileField(upload_to='files/shop/cook',
                              blank=True, null=True)
desc_cook = models.TextField(max_length=3000,
                             verbose_name=u'Описание повара',
                             blank=True, null=True)
shoptype = models.ForeignKey(ShopType, verbose_name=u'Тип заведения',
                             related_name="shop")
slider = models.ManyToManyField(Slider, verbose_name=u'Слайдер',
                                related_name="slider",
                                blank=True)
kitchen = models.ManyToManyField(Kitchen)

由于对这个问题没有更详细的说明,我将给出一个模糊的回答。如果显示更多详细信息,请填写

可以通过使用计算值注释queryset来实现这一点。请参阅文档


这意味着您将要求数据库计算出速率,例如,将每个店铺的距离除以其时间,然后将该值添加到为每个店铺返回的数据中。然后,您可以根据该字段执行订单

请提供更多详细信息,包括模型字段和公式计算公式,因为所有门店的订单总数除以门店的订单数量乘以门店比率。我是否可以假设存在一个具有指向门店的ForeignKey的类订单?