Python django distinct()和order_by()extra()一起使用
我使用django restframwork 当链接到Python django distinct()和order_by()extra()一起使用,python,django,Python,Django,我使用django restframwork 当链接到127.0.0.1/movie/?top=1 我想查询电影仍然在影院和1个月内的发行日 但有时结果会重复, 请帮我检查我的问题,为什么会发生这种情况 def top(self): past_month.date() = '2014-12-20' today.date() = '2015-01-20' self.queryset = Movie.objects.filter(releaseday__gte=pa
127.0.0.1/movie/?top=1
我想查询电影仍然在影院和1个月内的发行日
但有时结果会重复,请帮我检查我的问题,为什么会发生这种情况
def top(self):
past_month.date() = '2014-12-20'
today.date() = '2015-01-20'
self.queryset = Movie.objects.filter(releaseday__gte=past_month.date(),releaseday__lte=today.date(),movie__showtime__gte=today).extra({'vrank': 'CASE WHEN hot=0 THEN 21 WHEN hot >=10 THEN 21 ELSE hot END'}).order_by('vrank','-releaseday').distinct()
这是我的模型:
class Movie(models.Model):
title = models.CharField(max_length=255, blank=True)
releaseday = models.DateField( null=True,blank=True)
class MovieShowtime(models.Model):
movie = models.ForeignKey( Movie, null=True,blank=True,related_name = 'movie' )
movietime = models.DateTimeField(null=True,blank=True)
查询可能返回不同的行,但某些行之间的差异仅存在于您不想查看的列中(例如,相关表中的字段) 为确保查询为所关心的列返回不同的值,请在distinct()之前使用.values(['col1','col2'…])
另外,请务必查看文档中关于对不包含在values()中的列进行排序的说明:我使用valie会遇到此问题
“dict”对象没有属性“datetime”
,因为我在序列化中处理datetime。py@user2492364我不知道该怎么做,这听起来像是另一个问题。也许这是一个与代码和回溯不同的问题?谢谢你的帮助!我发现了为什么会这样。因为我需要将queryset传递给serialize.py来执行操作,所以我不能使用值,它将成为dict。我仍然找到另一种方法来解决这个问题。