0
我有兩個模型客戶和聯繫人,我想從Contact模型添加字段到客戶模型,並訪問它的值。如何解決它? 在此先感謝。Django Prefetch相關查詢
models.py
class Customer(models.Model):
code = models.CharField(primary_key=True,max_length=30)
name = models.CharField(max_length=200)
address = models.CharField(max_length=100)
class Contact(models.Model):
partner_name =models.ForeignKey(Customer,blank=True,null=True,on_delete=models.CASCADE)
contact_number=models.CharField(max_length=15,blank=True)
email=models.EmailField(max_length=50,blank=True)
我嘗試這個查詢
q=Customer.objects.filter(name='xxx').prefetch_related('contact_set')
for i in q:
print(i.contact_set)
它返回
partner.Contact.None
partner.Contact.None
partner.Contact.None
但我想添加字段從聯繫模式到客戶模型。如何做到這一點? –
你不能這樣做,因爲一個客戶可能有幾個或零個聯繫人。如果你確定只有一個 - 使用OneToOne而不是ForeignKey。使用當前模型,您可以使用'i.contact_set.first()。contact_number'但如果根本沒有聯繫人對象,它將失敗。它看起來不對,因爲你可能會錯過其他聯繫人。 – Igor