我正在尝试在具有特定字段的两个模型之间建立外键关系。
建立与ID字段的关系可以正常工作,但是当我使用to_field
选项时,我收到错误:
AttributeError: type object 'WorldEaseConsignee' has no attribute 'order_number'
示例代码:
class WorldEaseConsignee(models.Model):
order_number = models.IntegerField(
null=False,
blank=False,
default=0,
)
class WorldEaseInvoice(models.Model):
order_number_id = models.ForeignKey(
WorldEaseConsignee,
to_field=WorldEaseConsignee.order_number,
)
答案 0 :(得分:1)
来自docs:
关系所涉及的相关对象上的字段。默认情况下,Django使用相关对象的主键。
我们知道PK是独一无二的。尝试在order_number
模型中将unique
设置为WorldEaseConsignee
:
class WorldEaseConsignee(models.Model):
order_number = models.IntegerField(
null=False,
blank=False,
unique=True
)
另外,设置to_field
值如下:
class WorldEaseInvoice(models.Model):
order_number_id = models.ForeignKey(
WorldEaseConsignee,
to_field='order_number',
)