2

这是我的模型:

class SilverPriceManager(models.Manager):
    def missing_working_days(self, currency, year):
        if currency == 'usd':
            return self.filter(usd__isnull=False, date__year=year)
        else:
            return None

class SilverPrice(models.Model):
    date   = models.DateField(unique=True, help_text='Date for silver price.')
    usd    = models.DecimalField(null=True, blank=True, max_digits=15, decimal_places=10, help_text='USD price.')
    gbp    = models.DecimalField(null=True, blank=True, max_digits=15, decimal_places=10, help_text='GBP price.')
    eur    = models.DecimalField(null=True, blank=True, max_digits=15, decimal_places=10, help_text='EUR price.')

    objects = SilverPriceManager()

    def __unicode__(self):
        return str(self.date)

我正在尝试选择日期从星期一到星期五的所有行。
有一些简单的 django 特定技巧吗?

我的经理中已经有一些代码,但它整天都在选择。

4

1 回答 1

4

Django 有week_day查找但不幸的是你不能在上面使用查找操作符。实现此功能后,您将能够:

SilverPrice.objects.filter(date__week_day__range=(2,6))

但是现在这不起作用,您唯一的选择是过滤器链。我认为最简单的方法是排除周末:

SilverPrice.objects.exclude(date__week_day=1).exclude(date__week_day=7)
于 2013-06-08T13:33:51.040 回答