Я использую пакет
django-polymorphic==2.1.2
Django==2.2
При попытке выгрузить данные для тестирования происходит сбой с таким сообщением:
Error
Traceback (most recent call last):
File "/home/federico/Repositories/APC/venv/lib/python3.6/site-packages/django/test/testcases.py", line 1131, in setUpClass
call_command('loaddata', *cls.fixtures, **{'verbosity': 0, 'database': db_name})
File "/home/federico/Repositories/APC/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 148, in call_command
return command.execute(*args, **defaults)
File "/home/federico/Repositories/APC/venv/lib/python3.6/site-packages/django/core/management/base.py", line 364, in execute
output = self.handle(*args, **options)
File "/home/federico/Repositories/APC/venv/lib/python3.6/site-packages/django/core/management/commands/loaddata.py", line 72, in handle
self.loaddata(fixture_labels)
File "/home/federico/Repositories/APC/venv/lib/python3.6/site-packages/django/core/management/commands/loaddata.py", line 122, in loaddata
connection.check_constraints(table_names=table_names)
File "/home/federico/Repositories/APC/venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 318, in check_constraints
bad_value, referenced_table_name, referenced_column_name
django.db.utils.IntegrityError: Problem installing fixtures: The row in table 'core_faultagv' with primary key '1' has an invalid foreign key: core_faultagv.fault_ptr_id contains a value '1' that does not have a corresponding value in core_fault.id.
Я попытался использовать "--natural-foreign" и "--natural-primary" в качестве аргументов для dumpdata manage.py, но все равно не получилось.
Это мои модели:
class Fault(PolymorphicModel):
active = models.BooleanField(default=False)
equipment = models.CharField(choices=EquipmentChoices.choices(), max_length=10)
fault_text = models.CharField(max_length=255)
start_time = models.DateTimeField(auto_now=True)
def get_vehicle_id(self):
return None
class FaultAGV(Fault):
error_code = models.IntegerField()
vehicle_id = models.IntegerField()
def get_vehicle_id(self):
return self.vehicle_id
class FaultPLC(Fault):
bit = models.IntegerField()
index = models.IntegerField()
Любое предложение?
################# EDIT #################
Поскольку я не получаю ответов ... В итоге я переключился на пакет django-model-utils
. Он делает то, что мне нужно для Django с использованием InheritanceManager.