我有3个型号:在
class Shipment(models.Model):
job_id = models.CharField(max_length = 255)
time = models.DateTimeField(auto_now = True, auto_now_add = True, db_index = True)
class ShipmentBagSealMapping(models.Model):
bag_seal = models.CharField(max_length = 255)
status = models.CharField(max_length = 255, default = 'open')
time = models.DateTimeField(auto_now = True, auto_now_add = True, db_index = True)
shipment_id = models.ForeignKey('Shipment', related_name = 'bags')
class ShipmentPPTLMapping(models.Model):
pptl_id = models.CharField(max_length = 255)
time = models.DateTimeField(auto_now = True, auto_now_add = True)
shipment_id = models.ForeignKey('Shipment', related_name = 'pptls')
我想取一下已经关闭的行李的数量。
最初我有pptl_id
。因此,我从ShipmentPPTLMapping
模型得到shipment_id
,然后用shipmen_id
查询{
这是我所拥有的完成:在
袋子关闭=长度(Shipment.objects.filter(行李状态精确='关闭',行李时间范围=[开始时间,结束时间],pptls_upptl_id_u准确=pptls.pptl_标识))在
问题是因为每个包可以有多个装运,因此目前根据我的查询,我能够得到所有已关闭的装运计数。我想添加另一个过滤器,比如bags_value = distinct
有点像
^{pr2}$问题2
另外,我需要得到last_bagged_on
参数,它给出最后一个关闭的包的时间。显然,这个字段将从ShipmentBagSealMapping
模型获取,但我当前的对象是模型Shipment
。在
我怎么才能把最后一个袋子关上?
有点像这:在
last_bagged_on = Shipment.objects.filter(bags__status__exact = 'close', bags__time__range = [start_time,end_time],pptls__pptl_id__exact = pptls.pptl_id)[0].**bags_time**
1号
len(queryset)是一种不好的依赖对象的方法。请改用
.count()
第二
^{pr2}$如果使用的是django1.6,应该使用last_gged_on=ShipmentBagSealMapping…first()而不是
[0]
相关问题 更多 >
编程相关推荐