我有一个名为“电影(Movie)”的类:
class Movie(models.Model):
title = models.CharField(max_length=511)
tmdb_id = models.IntegerField(null=True, blank=True, unique=True)
release = models.DateField(null=True, blank=True)
poster = models.TextField(max_length=500, null=True)
backdrop = models.TextField(max_length=500, null=True, blank=True)
popularity = models.TextField(null=True, blank=True)
还有一个名为Trailer的类:
class Trailer(models.Model):
movie = models.ForeignKey(Movie, on_delete=models.CASCADE)
link = models.CharField(max_length=100)
date = models.DateTimeField(auto_now_add=True)
如何按预告片日期显示所有电影?
我尝试过:Movie.objects.order_by('trailer__date')
,但会导致多个重复项,并且也没有按正确顺序显示它们,我该如何避免重复项并按Trailer对象的日期对每部电影进行排序,以便每部电影只有一个条目?
编辑:我刚刚注意到它不显示所有条目,而只显示其中一些。
Movie.objects.annotate(earliest_trailer=Min('trailer__date')).order_by('earliest_trailer')
时,它显示了没有重复的电影,但顺序不正确,而且顺序是基于最新的预告片。第二个引发了一个错误:'odict_values' object is not subscriptable,我不确定这是什么意思。 - mari