当我在Models.py中的一个字段的db_列中使用长名称时,django无法正常工作。它将截断名称,并在末尾添加随机字母/数字
像这样:db\u column='my\u looooooooooong\u column\u name'
当我尝试queryset时,django返回: “表名”。“my_looo6e4”:标识符无效
我在Oracle中有一个遗留数据库。
数据库中的表名:PALAVRA_CHAVE_ENTREGA_VALOR
包含3个字段:PCEV\u CD\u PALAVRA\u CHAVE\u ENTREGA\u VALOR(主键),PACH\u CD\u PALAVRA\u CHAVE,ENVA\u CD\u ENTREGA\u VALOR
在mymodels.py中:
class PalavraChaveEntregaValor(models.Model):
pcev_cd_palavra_chave_entrega_valor = models.BigIntegerField(primary_key=True, db_column='pcev_cd_palavra_chave_entrega_valor')
pach_cd_palavra_chave = models.BigIntegerField()
enva_cd_entrega_valor = models.BigIntegerField()
class Meta:
managed = False
db_table = 'palavra_chave_entrega_valor'
在shell(python manage.py shell)中运行此命令时:PalavraChaveEntregaValor.objects.all()
我得到输出:数据库错误:ORA-00904:“PALAVRA_CHAVE_ENTREGA_VALOR”。“PCEV_CD_PALAVRA_CHAVE_ENTRA6E4”:无效标识符
我做了一个测试,把PCEV_CD_PALAVRA_CHAVE_ENTREGA_VALOR改成了PCEV_CD,一切都很好
django的db_列中的字符是否有限制?有解决办法吗?如果没有,我将不得不在Oracle数据库中创建大量视图,并且只有在django工作时才使用较短的列名。。更改当前表列名不是一个选项
目前没有回答
相关问题 更多 >
编程相关推荐