我有以下型号
class A(models.Model)
a_id = models.IntegerField(primary_key=True)
created_by_id = models.ManyToManyField(User,db_column="user_id", related_name="created_by_id")
last_updated_by = models.ManyToManyField(User, db_column="user_id", related_name="last_updated_by",)
resolved_by_id = models.ManyToManyField(User, db_column="user_id", related_name='resolved_by_id')
class B(models.Model):
....
class C(models.Model):
....
class User(models.Model):
user_id = models.IntegerField(primary_key=True)
user_name = models.CharField(max_lenght=30)
field_1 = models.ForeignKey(B)
field_2 = models.ForeignKey(C)
当我对class A
应用序列化时,我在SQL table not found中得到以下错误,我使用的是OracleDB
ORA-00942: table or view does not exist
('SELECT "USER"."USER_ID", "USER"."USER_NAME" FROM "USER" INNER '
'JOIN "A_CREATED_BY_ID" ON ("USER"."USER_ID" = '
'"A_CREATED_BY_ID"."USERMST") WHERE '
'"A_CREATED_BY_ID"."A_ID" = %s')
我查了很多Django文档,但仍然无法找出问题所在。你知道吗
更新:这是在旧数据库上,我们不使用迁移
由于这是一个遗留数据库,Django没有创建表,因此不知道ManyToManyFields使用的中间表。您必须让Django知道它应该使用哪些表来进行连接。 例如:
您应该在连接类A和类User的模型中指定
db_column
。你知道吗您还可以将
class Meta
添加到您的模型中:这让每个阅读代码的人都清楚地看到,数据库不是由Django管理的。你知道吗
编辑: 下面是官方文档中关于选项
through
的link。你知道吗相关问题 更多 >
编程相关推荐