Django - 按日期排序外键对象

时间:2015-04-15 13:59:31

标签: python django filter foreign-keys

我有以下django模型:

class Application(models.Model):
   name = models.CharField(max_length=50)      

class Release(models.Model):
   application = models.ForeignKey(Application)
   release_date = models.DateField("Release Date")

Application可以有多个ReleasesRelease可能是历史的,也可能是计划的未来版本(即将推出)

在我的django视图中,我目前返回一个应用程序名称表。 我想返回一个应用程序名称表和下一个即将发布的日期。如果没有即将发布的版本,它应该是空白的。

我的观点目前看起来像这样:

def index(request): 
  all_apps = Application.objects.all()
  template = loader.get_template('index.html')
  context = RequestContext(request, {'all_apps': all_apps})
  return HttpResponse(template.render(context))

我怎样才能提供下一个即将发布的版本'对于每个应用程序,它可以在模板中呈现吗?

1 个答案:

答案 0 :(得分:1)

在应用程序上提供方法

class Application(models.Model):
    name = models.CharField(max_length=50)

    def next_upcoming_release(self):
        future_releases = self.release_set.filter(release_date__gte=datetime.datetime.now())
        return future_releases.order_by('release_date').first()

您可以使用{{ application.next_upcoming_release }}在模板中调用此内容。