конфликт моделей с наследованием (META) - PullRequest
0 голосов
/ 12 апреля 2019

в проекте 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'.

Почему я получаю эту ошибку и как я могу ее исправить? Я имею в виду, что на уровне базы данных он должен быть только «указателем» на модель / объект валюты и не должен иметь отношения к его типу. Конечно, если я изменю тип наследования валюты на что-то другое, он будет работать нормально.

Джанго: 2,2 питон: 3.5.3

.

...