Django ManyToManyField和其他类的值
我在不同的服务场所有很多不同价格的标准服务 My models.py:Django ManyToManyField和其他类的值,django,manytomanyfield,Django,Manytomanyfield,我在不同的服务场所有很多不同价格的标准服务 My models.py: class Service(models.Model): service = models.CharField(max_length=200, unique=True) class ServicePlace(models.Model): place = models.CharField(max_length=200, unique=True) #what services are provided
class Service(models.Model):
service = models.CharField(max_length=200, unique=True)
class ServicePlace(models.Model):
place = models.CharField(max_length=200, unique=True)
#what services are provided in this ServicePlace:
service = models.ManyToManyField('Service')
class Price(models.Model):
price = models.DecimalField(max_digits=6, decimal_places=2)
service = models.ForeignKey("Service")
place = models.ForeignKey("Place")
如何以ServicePlace X的价格获得所有服务 您与ServicePlace和Service之间有着直接的关系,因此您可以遵循以下原则:
services = service_place_x.service.all()
(注意,服务
字段的名称有误,因为它引用了多个对象,所以可能应该称为服务
)
从那里,您可以直接访问每项服务的价格:
for service in services:
price = service.price
但是,这会在每次迭代中产生额外的db命中,因此您可能希望在原始查询中使用select\u related
:
services = service_place_x.service.all().select_related('price')
对不起,我问了个愚蠢的问题。答案在Django中。此代码不适用于服务中的服务:price=service。price(AttributeError:“service”对象没有属性“price”):