我在Django中放了一个循环外键,导致了名字冲突 . 我不明白为什么会发生冲突或如何最好地补救 . (这是我第一次在模型中使用循环引用 - 所以我不确定这可能是问题的根本原因吗?)
对于以下内容:
class Supplier(models.Model):
unique_id = models.IntegerField(unique=True)
name = models.CharField(max_length=255, unique=True)
rating = models.FloatField(null=True)
last_updated = models.DateTimeField(auto_now=True)
default_tariff = models.ForeignKey('Tariff')
class Tariff(models.Model):
name = models.CharField(max_length=255)
supplier = models.ForeignKey(Supplier)
end_date = models.DateField(null=True, blank=True)
payment_method = models.ManyToManyField(PaymentMethod)
region = models.ManyToManyField(Region)
错误是:
“Supplier.default_tariff”的反向查询名称与字段名称“Tariff.supplier”冲突 . 提示:重命名字段'Tariff.supplier',或将related_name参数添加/更改为字段'Supplier.default_tariff'的定义 .
1 回答
为避免这种情况,您可以使用related_name: