属性错误:'RelatedManager'对象没有属性反向连接



我试图实现反向连接,但我得到了这个错误:

'admin':i.mobileinv_imei.invoice.seller.username,AttributeError:"RelatedManager"对象没有属性"invoice">

这是我的型号.py

class Imei(models.Model):
mobile = models.ForeignKey(MobileCollection,on_delete=models.PROTECT)
imei = models.CharField(max_length=15,unique=True)
status= models.BooleanField(default=True)
class ImeiInvoice(models.Model):  
item = models.ForeignKey(Imei,on_delete=models.PROTECT,related_name='mobileinv_imei')
invoice = models.ForeignKey(CustomerInvoice,on_delete=models.CASCADE,related_name='invoice')
price = models.DecimalField(max_digits=20,decimal_places=3)
class CustomerInvoice(models.Model):
seller = models.ForeignKey(User,on_delete=models.PROTECT)
customer = models.CharField(max_length=50)
mobiles = models.ManyToManyField(Imei,through='ImeiInvoice')

我试图从Imei型号返回卖家名称,这是我的观点.py

def imei_sold_lists(request):
imeis = Imei.objects.filter(status=False) 
lists = []
for i in imeis:
imei = {            
'admin':i.mobileinv_imei.invoice.seller.username,
'customer':i.mobileinv_imei.invoice.customer,
'imei':i.imei,
'price':i.mobileinv_imei.price
}
lists.append(imei)    
return JsonResponse({'data':lists})

有什么我错过的吗?还是我该换点什么?谢谢你的帮助。。

i.mobileinv_imeiImeiInvoiceRelatedManager。它不是一个奇异的ImeiInvoice对象。当ForeignKey是多对一关系时,您似乎在尝试将其用于一对一关系。

如果您确定该Imei只有一个ImeiInvoice,则可以使用

i.mobileinv_imei.first().invoice

我不知道你的用例,但是,如果你需要在所有这些模型之间建立一对一的关系,我建议你使用一个可以为null的Imei->ImeiInvoice":

class Imei(models.Model):
...
invoice = models.ForeignKey(blank=True, null=True, to=ImeiInvoice)

相关内容

  • 没有找到相关文章

最新更新