给定以下模型:
class Enquiry(models.Model):
enquiryparent = models.ForeignKey('self',default=None, null=True, blank=True)
type = models.SmallIntegerField()
name = models.CharField(max_length=200)
mobile = models.CharField(max_length=40,blank=True,null=True)
email = models.EmailField(blank=True,null=True)
message = models.TextField(blank=True,null=True)
registered = models.DateTimeField(auto_now_add=True)
如何用Django编写以下查询:
计算一个特定的类型,比如说“x”,移动设备在三天内是唯一的(使用注册日期)为完整的集。。。你知道吗
示例:
id, type, mobile, registered
1, 2, 988, 01/11/2011
1, 2, 988, 02/11/2011
1, 2, 988, 03/11/2011
1, 4, 988, 04/11/2011
1, 2, 988, 05/11/2011
1, 2, 988, 06/11/2011
1, 2, 988, 07/11/2011
1, 2, 555, 07/11/2011
结果应该是:
id, type, mobile, registered
1, 2, 988, 03/11/2011
1, 2, 988, 05/11/2011
1, 2, 555, 07/11/2011
总计数=3。你知道吗
如果我对你的理解是正确的,这似乎是可行的,但不幸的是我不熟悉Django的ORM。我想基本的想法可能是这样的:
id
(id == 1
在您的示例中)、始终等于1的静态整数列和sum(static1)
这样的动态列进行选择type
过滤(如示例中的type == 2
)registered
排序mobile
sum(static1)
大于等于3的过滤器我知道这在原始SQL中是可能的,但我不知道如何在Django的ORM中实现。另一种选择是编写一个
for
循环来累加结果。你知道吗相关问题 更多 >
编程相关推荐