我有一个由MySQL数据库驱动的Django项目。我向数据库提供了一个包含大约600条记录的CSV文件(通过原始SQL语句)。这很顺利(几乎有Field 'customer_id' doesn't have a default value
的错误 - 不知道为什么)。问题是这些记录没有出现在webapp本身。
例如,CSV文件包含大约600条描述客户联系信息的记录的列表。当我启动Django测试服务器并转到客户端联系页面(应列出所有联系人记录 - 600)时,没有任何内容。此外,当我进入管理部分并查看客户联系人记录时,没有任何内容 - 但是它表明在分页按钮旁边总共有600条记录。此外,还有7页(7个分页按钮)的记录 - 当然,任何页面上都没有。
到底是什么?!
修改详情
我尝试导入的文件名为subset_ressy_esc.csv
,其中几行如下所示:
R0138,Y,1432 MyRoad Ct,MyCity, MyProv,H0H 0H0,N,100.00,0,1,1
R0140,Y,268 MyStreet Link,MyCity,MyProv,H0H 0H0,N,100.00,0,1,1
R0142,Y,10994 123 St,MyCity,MyProv,H0H 0H0,N,0.00,1,0,0
它们代表的字段(按照上面显示的顺序)是:
systemID (pk), isRessy, systemAddress, systemCity, systemProvince, systemPostalCode, isHoseBibb, servicePreauthAmt, noWorkRequired, SUAuthorized, BDAuthorized
现在isRessy
和isHoseBibb
字段是select
样式字段,用户从下拉列表中选择,noWorkReqd
,SUAth
和BDAuth
是布尔人。 serviceAmt
是小数(美元)amt。
要导入此数据,我会进入mySql解释器mysql -u garfonzo -p
并运行以下命令:
mysql> load data local infile '/home/garfonzo/subset_ressy_esc.csv' into table systems_system fields terminated by ',' lines terminated by '\n' (systemID, isRessy, systemAddress, systemCity, systemProvince, systemPostalCode, isHoseBibb, servicePreauthAmt, noWorkRequired, SUAuthorized, BDAuthorized);
Query OK, 684 rows affected, 1 warning (0.01 sec)
Records: 684 Deleted: 0 Skipped: 0 Warnings: 0
mysql> show warnings;
+---------+------+-----------------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------------+
| Warning | 1364 | Field 'systemOwner_id' doesn't have a default value |
+---------+------+-----------------------------------------------------+
当我执行SELECT * FROM systems_system
时,我会使用所有正确的数据吐出所有684条记录。当我打开django项目时,没有列出任何内容,但管理员有7页系统,没有一个系统实际存在 - 只有7页什么都没有。
有什么想法吗?
答案 0 :(得分:1)
有趣。管理员显示正确记录计数的事实意味着表名匹配(这是我的第一个想法)。因此它可以看到应用程序,表格和记录计数。我的猜测是两件事之一:
您没有为班级定义__str__()
或__unicode__()
方法,或
您没有正确设置匹配的admin.py
类,而是显示一个空白字段。
我的钱在第一位。
答案 1 :(得分:1)
您确定通过.save()方法实际保存了这些记录吗? 控制台显示什么?我的意思是你试过手动迭代shell吗? (manage.py shell) 最后你试过重启服务器?
管理员不应要求__str__
或__unicode__
。
答案 2 :(得分:0)
查看字段systemOwner_id
的警告没有默认值并没有真正打扰我。但我突然意识到我没有为该字段导入值,并且该字段不能为空。所以,(出于测试目的)我更改了我的模型,以便该字段systemOwner_id
可以为null,运行相同的MySQL导入,瞧,所有系统都存在。尼斯!!
感谢您的帮助 - 在此Q& A上完成此操作有助于解决我的问题。
干杯!