Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django ORM联接查询_Django_Django Models_Django Orm - Fatal编程技术网

Django ORM联接查询

Django ORM联接查询,django,django-models,django-orm,Django,Django Models,Django Orm,我有两个模型 class ShipmentBagSealMapping(models.Model): bag_seal = models.CharField(max_length = 255) status = models.CharField(max_length = 255, default = 'open') time = models.DateTimeField( auto_now_add = True, db_index = True) shipment

我有两个模型

class ShipmentBagSealMapping(models.Model):
    bag_seal = models.CharField(max_length = 255)
    status = models.CharField(max_length = 255, default = 'open')
    time = models.DateTimeField( auto_now_add = True, db_index = True)
    shipment_id = models.ForeignKey('Shipment', related_name = 'bags')



class Shipment(models.Model):
    job_id = models.CharField(max_length = 255)
    time = models.DateTimeField( auto_now_add = True, db_index = True)
我想写一个JOIN查询,告诉我
ShipmentBagSealMapping
status=close
的记录计数,
shipping
的时间在
[开始时间和结束时间]
范围内

以下是我所尝试的:

total_bags = ShipmentBagSealMapping.objects.filter(shipments__time__range = [start_time,end_time],status='close').values('bag_seal').distinct().count()
但它抛出了一个错误,即:-

Cannot resolve keyword 'shipments' into field. Choices are: bag_seal, id, shipment_id, status, time
我该怎么做?

这应该可以做到:

total_bags = ShipmentBagSealMapping.objects.filter(shipment_id__time__range = [start_time,end_time],status='close').values('bag_seal').distinct().count()

请注意,您已将该字段定义为
shipping\u id
而非
shippings
Django将自动在您的外键中添加_id,因此进行一些类似的更改可能会有所帮助

class ShipmentBagSealMapping(model.Model):
bag_seal = models.CharField(max_length = 255)
status = models.CharField(max_length = 255 )
time = models.DateTimeField( auto_now_add = True)
shipments = models.ForeignKey('Shipment', related_name = 'bags')

哦,是的……非常感谢。:)请你也看看这个问题好吗。谢谢