如何使用此模型对两个模型进行查询
model.objects.raw(...)
并且进入sql查询的INNER JOIN与另一个模型(表)这是可能的
model.objects.raw('
SELECT establecimiento.nombre, categoria.titulo
FROM establecimiento INNER JOIN
categoria ON establecimiento.categoria = categoria.id')
我需要用他的categoria的名字打印establecimiento的名字
class Establecimiento(models.Model):
nombre = models.CharField(max_length = 140)
categoria = models.ForeignKey(Categoria)
ciudad = models.ForeignKey(Ciudad)
def __unicode__(self):
return self.nombre
class Categoria(models.Model):
titulo = models.CharField(max_length = 140)
答案 0 :(得分:1)
从ORM中获取对象会自动执行所需的任何连接,并返回可用于跟踪关系的对象(模型实例)。
如果您只是获取所有Establecimiento
个对象,则可以访问相关的Categoria
个对象,如下所示:
all_objects = Establecimiento.objects.all()
for obj in all_objects:
print('Number: {} Category: {}'.format(obj.nombre, obj.categoria.titulo))
或者,如果您只想获取 这两个特定属性,请使用values
,如下所示:
all_objects = Establecimiento.objects.values('nombre','ciudad__titulo')
for obj in all_objects:
print('Number: {} Category: {}'.fromat(obj['nombre'],obj['ciudad__titulo']))