Python 显示Django mysql表中导入的错误
我的模型中有这样一个模型Python 显示Django mysql表中导入的错误,python,mysql,django,Python,Mysql,Django,我的模型中有这样一个模型 class DeviceType(models.Model): device_type_id = models.IntegerField(unique=True, blank=True, null=True,db_column='device_type_id') device_type_name = models.CharField(max_length=64) class Meta: # managed = False db_tab
class DeviceType(models.Model):
device_type_id = models.IntegerField(unique=True, blank=True, null=True,db_column='device_type_id')
device_type_name = models.CharField(max_length=64)
class Meta:
# managed = False
db_table = 'device_type'
对于测试,我尝试将该表添加到admin视图,但当我尝试查看结果时,出现了一个错误:
(1054, "Unknown column 'device_type.id' in 'field list'")
Request Method: GET
Request URL: http://172.17.45.9:8001/admin/_my_alfanet_/devicetype/
Django Version: 1.10.6
Exception Type: OperationalError
Exception Value:
(1054, "Unknown column 'device_type.id' in 'field list'")
Exception Location: /etc/network/scripts/my_alfanet_env/lib/python2.7/site-packages/MySQLdb/connections.py in defaulterrorhandler, line 36
Python Executable: /etc/network/scripts/my_alfanet_env/bin/python
Python Version: 2.7.9
Python Path:
['/etc/network/scripts',
'/etc/network/scripts/ansible/lib',
'/etc/network/scripts',
'/etc/network/scripts/my_alfanet_env/lib/python27.zip',
'/etc/network/scripts/my_alfanet_env/lib/python2.7',
'/etc/network/scripts/my_alfanet_env/lib/python2.7/plat-linux2',
'/etc/network/scripts/my_alfanet_env/lib/python2.7/lib-tk',
'/etc/network/scripts/my_alfanet_env/lib/python2.7/lib-old',
'/etc/network/scripts/my_alfanet_env/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7',
'/usr/local/lib/python2.7/plat-linux2',
'/usr/local/lib/python2.7/lib-tk',
'/etc/network/scripts/my_alfanet_env/lib/python2.7/site-packages']
Server time: Fri, 3 Mar 2017 15:18:57 +0000
看起来django试图将自己的列添加到sql请求中,这是一个错误。谁能帮助解决这个问题?Django要求每个模型只有一个主键。除非您为其他字段之一设置了
primary\u key=True
,否则它将id
添加到模型中
在您的情况下,device\u type\u id
似乎是主键。如果是,可以将模型更改为:
class DeviceType(models.Model):
device_type_id = models.IntegerField(primary_key=True)
device_type_name = models.CharField(max_length=64)
我已经删除了db\u column='device\u type\u id'
,因为它与字段名匹配。我还删除了blank=True
和null=True
,因为主键不能为null
如果数据库自动创建
设备类型\u id
,则应使用而不是整型字段
。如果没有,则在数据库中创建新设备类型时,您必须手动设置设备类型\u id
。此数据库是外部数据库,它是从另一个项目导入的。是否可以添加admin视图admin.py文件?