Как узнать количество самых популярных товаров? - PullRequest
0 голосов
/ 03 мая 2018

Привет, на самом деле, я новичок в работе Django Restframe. Здесь я упомянул свою модель. Мой вопрос? Я не знаю, как хранить счет каждого продукта. и наиболее просматриваемый товар должен отображаться во внешнем интерфейсе.

MODEL.PY

class Products(models.Model):
   name = models.CharField(max_length=100)
   image = models.CharField(max_length=10, null=True)
   categories =  models.ArrayModelField(
       model_container=Category,
       model_form_class=CategoryForm
   )
   specifications =  models.ArrayModelField(
       model_container=Specifications,
       model_form_class=SpecificationsForm
   )
   description = models.CharField(max_length=500)
   reviews =  models.ArrayModelField(
       model_container=Reviews,
       model_form_class=ReviewsForm
   )
   drizzly = models.BooleanField(default=False)
   complete = models.BooleanField(default=False)
   comment = models.CharField(max_length=500)
   count = models.IntegerField()

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Лучший способ сделать это - использовать атомарные операции :

from django.db.models import F

Products.objects.filter(name = name).update(count = F('count')+1)

Примечание : для поля name должно быть установлено значение unique или фильтрация по другому полю unique.

0 голосов
/ 03 мая 2018

Если вы используете представления на основе классов, вы можете сделать что-то вроде:

Class ProductsDetailView(DetailView):
    model = Products

    def get(self, **kwargs):
        self.object.count += 1
        self.object.save()
        return super(ProductsDetailView, self).get(**kwargs)

Для заказа по количеству, в вашей модели включают

Class Meta:
    ordering = ['count']
...