如何在Django中获取字段的值

时间:2019-03-05 19:29:20

标签: django

我目前正在使用像IMDB.com这样的Django应用程序,该应用程序具有Media(包含电视节目和电影)模型和Episode模型(它们之间具有一对多关系),以便在TvShow页面上显示这些情节。

我设法通过以下方式在页面内显示电视节目的片段:

def tvshow(request, tvshow_title):

  tvshow = get_object_or_404(Media, title=tvshow_title)

  episodes = Episode.objects.all().filter(is_published=True, tvshow=tvshow)

  context = {
      'tvshow': tvshow,
      'episodes': episodes
  }

  return render(request, 'media/tvshow.html', context)

这很好用,但是我还需要根据季节来显示情节,这让我有点困惑,当媒体模型中没有字段时,我如何知道电视节目有多少个季节,但是情节模型有一个season_number字段,所以我试图根据season_number来查询电视节目的最后一集:

latest_episode = Episode.objects.order_by('-season_number').filter(is_published=True, tvshow=tvshow)[:1]

我确实成功地获得了这一集,但是我现在不知道该如何获得其中的季数。

我尝试了

seasons = latest_episode.season_number

seasons = latest_episode['season_number']

,他们都不起作用。请告诉我是否有更好的方法,如果这种方法很好,请告诉我如何获取season_number。 :)

1 个答案:

答案 0 :(得分:0)

使用[:1]返回一个QuerySet,它基本上是一个列表,而不是模型实例(将其视为返回[EPISODE]而不是返回EPISODE。)您无权访问剧集的season_number属性。

尝试一下:

latest_episode = Episode.objects.order_by('-season_number').filter(is_published=True, tvshow=tvshow).first()

然后您应该可以使用latest_episode.season_number