さて、私はブログ (百日草) で作業しており、モデルはエントリです。次のことを行う特別なクエリを作成したいと思います。
- 1 日あたり最大 1 つのエントリを選択します。
- エントリが「おすすめ」とマークされている場合は、そのエントリを選択します。
- それ以外の場合は最新のものを選択してください
簡略化されたモデル:
class EntryAbstractClass(models.Model):
"""Base Model design for publishing entries"""
creation_date = models.DateTimeField(_('creation date'),
default=timezone.now)
start_publication = models.DateTimeField(_('start publication'),
blank=True, null=True,
help_text=_('date start publish'))
end_publication = models.DateTimeField(_('end publication'),
blank=True, null=True,
help_text=_('date end publish'))
featured = models.BooleanField(_('featured'), default=False)
さらに複雑なことに、「最新」に使用されるエントリの日付は次のとおりです。
if start_publication != None:
latest_date = start_publication
else:
latest_date = creation_date
SQLでこれを行う方法がわかりません。djangoフィルターはなおさらです。何か案は?