2013-04-21 74 views
0

我对django很新,我正在尝试完成一些重复的任务。我想知道下面的任务会是什么样的django。什么是这个SQL查询的Django等价物?

  1. 我想选择属于某个日期范围内的所有值。

例如:让我们有一个表叫做考试成绩

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的命令。

这里的时候,我像做

for s in scores: 
    print "Physics score =", s.Physics 

控制从来没有涉及到打印语句我会写类似

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

与上面的代码的问题。

回答

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] 

名单这个你是什么想要做还是误解了这个问题?

+0

这是有点正确,但我期待获得具有数学价值的所有对象。假设我应该能够通过访问满足条件的对象来看到Bill的物理分数。此外,您的查询给了我一个语法错误 – 2013-04-21 22:48:20

+0

我改变了我的问题了一下。你能看看并帮我解决可能出错的问题吗? – 2013-04-21 22:55:03

+0

@appyg你是什么意思,“控制从来没有到印刷品声明。”因为我没有看到你问题中的逻辑有什么问题。 – Ngenator 2013-04-21 23:10:35

0

根据以上显示的数据和查询,有没有匹配'bill'和'pass'的元素。有些元素匹配'账单'和'通行证',这是不同的事情。

虽然我不明白你的观点与日期范围的相关性。

相关问题