【发布时间】:2009-12-13 01:12:31
【问题描述】:
我想要的是能够获得这几周/这几个月/这几年等最热门的产品。所以我有一个名为ProductStatistics 的模型,它将记录每天的每次点击和每次购买。这是我必须使用的模型:
class Product(models.Model):
name = models.CharField(_("Name"), max_length=200)
slug = models.SlugField()
description = models.TextField(_("Description"))
picture = models.ImageField(upload_to=product_upload_path, blank=True)
category = models.ForeignKey(ProductCategory)
prices = models.ManyToManyField(Store, through='Pricing')
objects = ProductManager()
class Meta:
ordering = ('name', )
def __unicode__(self):
return self.name
class ProductStatistic(models.Model):
# There is only 1 `date` each day. `date` is
# set by datetime.today().date()
date = models.DateTimeField(default=datetime.now)
hits = models.PositiveIntegerField(default=0)
purchases = models.PositiveIntegerField(default=0)
product = models.ForeignKey(Product)
class Meta:
ordering = ('product', 'date', 'purchases', 'hits', )
def __unicode__(self):
return u'%s: %s - %s hits, %s purchases' % (self.product.name, str(self.date).split(' ')[0], self.hits, self.purchases)
在最近一周(hits+(purchases*2)) 之后,您将如何对产品进行排序?
这个结构也不是一成不变的,所以如果你想以任何其他方式构建模型,请告诉!
【问题讨论】:
标签: django django-models django-orm