【发布时间】:2021-08-31 10:05:25
【问题描述】:
我有两张表,一张用于产品,一张用于供应商,我做了一个查询,返回如下:
select
f.nome, f.cnpj, sum(p.quantidade) as "Quantidade de Produtos",
count(distinct categoria_id) as "Categorias com Produtos "
from
core_produtos p
inner join
core_fornecedor f
on
p.fornecedor_id=f.id
group by
f.nome, f.cnpj
order by
f.nome ASC;
然后她返回一个像这样的表格:
nome | cnpj | Quantidade de Produtos | Categorias com Produtos
--------------+--------------------+------------------------+--------------------------
fornecedor 1 | 10.331.608/0001-52 | 7339 | 5
fornecedor 2 | 00.333.725/0001-00 | 7673 | 5
fornecedor 3 | 88.550.421/0001-37 | 8423 | 5
fornecedor 4 | 03.251.500/0001-94 | 14101 | 5
fornecedor 5 | 25.862.630/0001-04 | 8988 | 5
我在相关表格中的模型:
class Produtos(models.Model):
categoria = models.ForeignKey(
Categoria, related_name="produtos", on_delete=models.CASCADE)
fornecedor = models.ForeignKey(
Fornecedor, related_name="fornecedores", on_delete=models.CASCADE, max_length=225)
nome = models.CharField(max_length=255)
descricao = models.TextField(blank=True)
preco = models.DecimalField(max_digits=10, decimal_places=2)
quantidade = models.IntegerField(default=0)
disponivel = models.BooleanField(default=True)
class Meta:
verbose_name = "Produto"
verbose_name_plural = "Produtos"
def __str__(self):
return self.nome
class Fornecedor(models.Model):
nome = models.CharField(max_length=255)
cnpj = models.CharField(max_length=20, unique=True)
class Meta:
verbose_name = "Fornecedo"
verbose_name_plural = "Fornecedores"
def __str__(self):
return self.cnpj
我的问题是: 如何使用 django 的 ORM 进行查询?
【问题讨论】:
-
给你 Django 的模型定义会有所帮助。
-
对不起,我没听懂
-
要使用Django的ORM,你必须声明models。你这样做了吗?如果是,您能否提供模型的定义?
-
准备好了,我贴在这里
-
好的,抱歉,我是新来的
标签: python sql django postgresql