Python 混淆django关系
我正在开发一个存储软件,我对Django上的这种关系感到困惑。 该项目的模型有两个类: 地点:Python 混淆django关系,python,django,many-to-one,Python,Django,Many To One,我正在开发一个存储软件,我对Django上的这种关系感到困惑。 该项目的模型有两个类: 地点: class Places(models.Model): tipo = models.CharField(max_length=15, null=True) cnpj = models.CharField(null=True, max_length=11) ie = models.CharField(null=True, max_length=13) cep = mode
class Places(models.Model):
tipo = models.CharField(max_length=15, null=True)
cnpj = models.CharField(null=True, max_length=11)
ie = models.CharField(null=True, max_length=13)
cep = models.CharField(null=True, max_length=20)
cidade = models.CharField(null=True, max_length=54)
bairro = models.CharField(null=True, max_length=54)
num = models.CharField(null=True, max_length=54)
rua = models.CharField(null=True, max_length=254)
maintelefone = models.CharField(null=True, max_length=10)
sectelefone = models.CharField(null=True, max_length=10)
contactperson = models.CharField(max_length=200, null=True)
email = models.CharField(null=True, max_length=254)
site = models.CharField(null=True, max_length=254)
razaosocial = models.CharField(null=True, max_length=254)
fantasia = models.CharField(null=True, max_length=254)
created = models.DateTimeField(default=timezone.now, editable=False)
last_updated = models.DateTimeField(default=timezone.now, editable=False)
def __str__(self):
return self.razaosocial
和Movementacao:
class Movimentacao(models.Model):
date = models.DateField(default=timezone.now, null=True)
produto = models.ForeignKey(
'Produto', on_delete=models.CASCADE, null=True) # Automatizar
qtd = models.IntegerField(null=True, default=1)
numero_serie = models.CharField(null=True, max_length=154)
tipoMov = models.CharField(max_length=5, null=True)
tipo = models.CharField(max_length=5, null=True)
nf = models.CharField(null=True, max_length=154)
date_nf = models.DateTimeField(default=timezone.now, null=True)
origem = models.ForeignKey(
'Places', on_delete=models.CASCADE, related_name='origemovi', null=True)
destino = models.ForeignKey(
'Places', on_delete=models.CASCADE, related_name='destinomovi', null=True)
obs = models.CharField(max_length=254, null=True)
created = models.DateTimeField(default=timezone.now, editable=False)
def __str__(self):
return self.tipoMov
逻辑是,
Place
可以有一个或多个Movimentacao
,而Movimentacao
可以只有一个Place
(我支持多对一),但我希望Place
也能得到Movimentacao
的id,而不仅仅是Movimentacao获得该地点的id。我怎样才能做到这一点呢?你有你的origem
和destino
外键和它们各自相关的名字。怎么了?是的,我的意思是当我通过一个地方列表时,我找不到这个地方的移动,比如id为2的地方有id为6和7的移动,我只需要id为6的移动有位置2为什么不呢?为什么你不能用my\u place.orgemovi\u set.all()
查找所有以该位置为原始位置的电影?就是这样,代码:for i in lista\u places:print(i.origemovi\u set.all())
错误:AttributeError:“Places”对象没有属性“origemovi\u set”
对不起,您已经将origemovi
作为相关的\u名称,因此它应该是i.origemovi.all()
。您的origem
和destino
外键以及它们各自的相关名称。怎么了?是的,我的意思是当我通过一个地方列表时,我找不到这个地方的移动,比如id为2的地方有id为6和7的移动,我只需要id为6的移动有位置2为什么不呢?为什么你不能用my\u place.orgemovi\u set.all()
查找所有以该位置为原始位置的电影?就是这样,代码:for i in lista\u places:print(i.origemovi\u set.all())
错误:AttributeError:“Places”对象没有属性“origemovi\u set”
很抱歉,您将origemovi
作为相关的\u名称,因此它应该是i.origemovi.all()
。