Python 生成基于外部的查询集

Python 生成基于外部的查询集,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我目前有三种型号,即服务、客户和订单,如下所示 class Customer(models.Model): user = models.OneToOneField(User,on_delete=models.CASCADE) name = models.CharField(max_length=200, null=True) def __str__(self): return self.user.email class Services(model

我目前有三种型号,即服务、客户和订单,如下所示


class Customer(models.Model):

    user = models.OneToOneField(User,on_delete=models.CASCADE)
    name = models.CharField(max_length=200, null=True)

    def __str__(self):
        return self.user.email

class Services(models.Model):

    name = models.CharField(max_length=200, null=True)
    price = models.FloatField(null=True)


class Order(models.Model):

    customer = models.ForeignKey(Customer, null=True, on_delete = models.SET_NULL)
    service = models.ForeignKey(Service, null=True, on_delete = models.SET_NULL)

如图所示,订单模型具有来自客户和服务模型的外键

当我从服务和客户构建查询集时

Service.objects.all()

Customer.objects.all()

如何通过基于订单模型访问查询集获得相同的结果

目前,我正在创建查询集,如下所示


class Customer(models.Model):

    user = models.OneToOneField(User,on_delete=models.CASCADE)
    name = models.CharField(max_length=200, null=True)

    def __str__(self):
        return self.user.email

class Services(models.Model):

    name = models.CharField(max_length=200, null=True)
    price = models.FloatField(null=True)


class Order(models.Model):

    customer = models.ForeignKey(Customer, null=True, on_delete = models.SET_NULL)
    service = models.ForeignKey(Service, null=True, on_delete = models.SET_NULL)

Order.objects.all().value('service')

Order.objects.all().value('customer')

然而,如果我像他那样做的话,我不会得到同样的结果

Service.objects.all()

Customer.objects.all()


如何让基于订单模型的查询集接收来自上述服务和客户的查询集的结果?

它不起作用,因为当您从
Order
model实例进行查询时,只有连接到
Order
model实例的其他两个模型的相关对象才是目标。您无法以这种方式访问其他两个MELD的所有实例。这不起作用,因为当您从
Order
model实例查询时,只有连接到
Order
model的此实例的其他两个模型的相关对象是目标对象。用这种方法无法到达其他两个熔合的所有实例。