在django项目中,我有多个应用程序,并且公用程序包含以下模型:
class CLDate(models.Model):
class Meta:
abstract = True
active = models.BooleanField(default=True)
last_modified = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
class Switch(CLDate):
name = models.CharField(max_length=64)
code = models.CharField(max_length=64, blank=True, null=True)
description = models.TextField(blank=True, null=True)
sorted = models.IntegerField(default=0)
class Currency(Switch):
pass
在另一个应用程序中,我导入了Switch,并尝试将ForeignKey添加到也继承自Switch的模型中
class Country(Switch):
...
currency = models.ForeignKey(Currency, on_delete=models.CASCADE)
...
。
运行makemigration或任何带有manage.py的内容时,出现以下错误:
SystemCheckError: System check identified some issues:
ERRORS:
ads.Country.currency: (models.E006) The field 'currency' clashes with the
field 'currency' from model 'common.switch'.
为什么会出现此错误,我该如何解决?我的意思是,在数据库级别,它应该只是货币模型/对象的“指针”,并且与它的类型无关。当然,如果我将“货币”的继承类型更改为其他类型,则效果很好。
Django:2.2 python:3.5.3
。