【发布时间】:2017-04-06 12:44:10
【问题描述】:
我想要实现的是,让 Django 创建和管理的模型 Person 有一个带有模型 Property 的 ManyToMany 字段,该字段是使用 inspectdb “创建”的并且已经存在于数据库中。
(Property 包含地理数据,无法由 Django 管理或更改)
当尝试迁移时,它会引发:
ValueError:无法解析相关模型“cadastroapp.Property”
我从迁移文件中删除创建模型 Property 的步骤毫无价值,因为它已经存在并且 AFAIK 无法在模型类中告诉 Django
models.py(简化版):
class Person(models.Model):
objectid = models.AutoField(primary_key=True)
properties = models.ManyToManyField(
'Property',
through = 'Person_Property',
)
class Meta:
db_table = 'django_person'
class Person_Property(models.Model):
cod_person = models.ForeignKey('Person', on_delete=models.CASCADE)
cod_property = models.ForeignKey('Property', on_delete=models.CASCADE)
class Meta:
db_table = 'django_person_property'
class Property(models.Model):
objectid = models.BigIntegerField(unique=True, primary_key=True)
created_user = models.CharField(max_length=765, blank=True, null=True)
created_date = models.DateTimeField(blank=True, null=True)
last_edited_user = models.CharField(max_length=765, blank=True, null=True)
last_edited_date = models.DateTimeField(blank=True, null=True)
shape = models.TextField(blank=True, null=True) # This field type is a guess. - ESRI Shape
class Meta:
managed = False
db_table = '"GEO"."PROPERTY"'
【问题讨论】:
-
请发布迁移文件cadastroapp.0006_auto_20161122_1533
-
@PatrickFalvey 这里pastebin.com/Nv49Kwep
标签: python django oracle django-models