Сортировка в Django если цена меняется из модели и показывается в шаблоне
Как отсортировать именно в views прайс по user_max2() из модели? javascripts в шаблоне не предлагать, надо переделывать тогда и пагинатор.... По сути в представлении надо получить список айди товаров по убыванию цены товаров.
Models
class Product(models.Model):
price = models.FloatField( verbose_name="Цена")
....
def user_max2(self):
user = get_current_user()
user_k = user.usrid.discount_list_k1.group_discount_list_k
listusers_id = user.usrid.listusers_id
brand2 = self.brand.clt1.all()
for pr in brand2:
if pr.published == 1:
if pr.mf_id == self.brand.brand_id and pr.client_id.listusers_id == listusers_id:
if pr.k_dn == 1:
return self.zakup * pr.k_up
else:
user_max = max(pr.k_dn, self.discount_product_min)
return self.price * user_max
user_max = max(user_k, self.discount_product_min)
return self.price * user_max
Views
if sort == 'price0':
products = products.order_by('price')
new_data_match = []
for data in products:
new_data_match.append(data.user_max2())
new_list = sorted(new_data_match, key=lambda k: k)
print(new_list)
Шаблон
<div class="amount">
{{product.user_max2|floatformat:"2g"}}
</div>