什么是这个SQL查询的django等价物?

时间:2013-04-21 22:11:39

标签: python mysql django django-models django-queryset

我是django的新手,我正在尝试完成一些重复的任务。我想知道django相当于以下任务是什么。

  1. 我想选择属于特定日期范围的所有值。
  2. 例如:让我们有一张名为考试成绩的表格

     User Physics  Chemistry Mathematics Total  Date
     bill    98       94          Pass    284   02/03/2013
     murray  0        89          Fail     89   02/03/2013
     bill    10       20          Pass     90   01/29/2013
    

    现在假设我想编写一个django命令来获取用于他已经通过数学的所有情况的用户账单对象。

    在这里我会写类似

    的内容
    scores = Score.objects.filter(user = "bill", Mathematics = "pass")
    

    上面代码的问题是我做

    之类的事情
     for s in scores:
         print "Physics score =", s.Physics
    

    控件永远不会出现在打印声明中。

2 个答案:

答案 0 :(得分:0)

所以我认为你要的是这样的东西

math_scores = Score.objects.filter(user='bill', date__range=(timezone.now() - datetime.timedelta(days=7), timezone.now()).values_list('mathematics', flat=True)

这将为您提供过去一周的账单的所有数学分数,如

[92, 60]

这是你想要做的事情,还是我误解了这个问题?

答案 1 :(得分:0)

根据您上面显示的数据和查询, 没有匹配' bill'并且通过了#39;有匹配' bill'和' Pass',这是另一回事。

但是,我并不了解您对日期范围的观点的相关性。