我有2个模型:Project和ProjectTweet。
Project OneToMany与ProjectTweet有关系(相关名称:" tweets")
这是我的查询集:
current_pledge = 1000000
projects = Project.objects.filter(state = "live").filter(pledged__gt=current_pledge).exclude(tweets__step__gte=current_pledge)
这是
的结果print projects.query
SELECT `ks_project`.* FROM `ks_project` WHERE (`ks_project`.`state` = live AND `ks_project`.`pledged` > 1000000.0 AND NOT (`ks_project`.`id` IN (SELECT U1.`project_id` AS Col1 FROM `ks_projecttweet` U1 WHERE U1.`step` >= 1000000)))
(我已经用ks_project
替换了长字段列表。*仅用于后期可读性)
在django中评估的此查询给出了0结果,但我应该有一个。
事实上,当我在mysql控制台(同一用户)中复制查询时,我得到了我独特的结果......(只是将字符串添加到字符串中,因为只有在评估查询时才会添加它们,例如:{ {3}})
对导致这种差异的原因有什么想法?
答案 0 :(得分:0)
我不知道我怎么会错过这个但是我用“{1}}
进行比较的”步骤“字段是CharField而不是FloatField ...我已经改变了,现在mysql控制台和queryset中的查询给了我相同的结果。但是我会喜欢错误,而不是给我0结果
不能将gte与charfield一起使用
或类似的东西。