0

私は次のようなモデルを持っています:

class FeaturedGroup(models.Model):
'''
Featured Group. Here we store the diferents groups of featureds items
'''
slug = models.SlugField(unique=True)
title = models.CharField(max_length=100)
description = models.TextField(blank=True)
picture = models.ImageField(upload_to="upload", default="img-tmp/featured_category.png")
items = models.ManyToManyField('FeaturedItem', blank=True, null=True)
cnt_show = models.IntegerField(_('Quantity of items'))
cnt_max = models.IntegerField(_('Max items'))
rotation_time = models.IntegerField()
price = CurrencyField(_("Price for each Freatured item"), decimal_places=2,
              max_digits=8, blank=True, null=True,
              help_text=_("Enter the price of the each featured item"))

そして、そのクラス内に次のメソッドがあります。

def all_items(self, limit=False):
    key = 'featured_all_items_%(limit)s_%(id)s'%{'id':self.id, 'limit':limit}
    items = cache.get(key)
    if not items:
        featured = self.items.filter(date_from=datetime.date.today)
        featured = featured.order_by('-print_count', 'id')
        if limit:
            featured = featured[:self.cnt_show]
        items = []
        for item in featured:
            item.print_count += 1
            items.append(item.get_object())
            item.get_object()
            item.save()
        cache.set(key, items, settings.CACHE_TIME)
    return items

問題は、self.items.filter(date_from=datetime.date.today) の行です。たとえば、date_from が昨日を表す値であるが、date_to が明日を表す値である製品がある場合、今日はまだ有効ですが、その行ではそうではありません。

範囲で試してみましたが、惨めに失敗しました。ヒントはありますか?

4

1 に答える 1