我正在尝试做的是:我有一个包含一些公共传输数据的csv文件。我想在我的Django应用程序中使用它,所以我将csv导入mySQL数据库。然后,我为表创建了一个Django模型(我还将我的模型与python manage.py inspectdb
的输出进行了比较,以确保它是正确的。然后我运行python manage.py makemigrations
,最后运行python manage.py migrate
。我理解(我是Django的新手,很抱歉,如果我错过了一些明显的东西),我的数据库中的表现在可以被Django访问了。
虽然不行。我已经尝试使用Django shell(python manage.py shell
)并使用Stops.objects.all()
返回表内容,这将返回一个空集。同样,我能够使用Stops.objects.all()
的值创建一个HttpResponse,虽然它没有给出错误,但没有返回任何数据。我已经确认我正在settings.py中访问正确的数据库,并且数据实际上是通过mysql终端进行的。
我一直试图解决这个问题多年,但没有找到任何解决方案。我想我可能错过了一些小步骤,希望有人会知道。提前谢谢!
答案 0 :(得分:0)
如果我是你,我会验证我的表是按预期命名的。
使用MySQL,something like
USE mydb
SHOW TABLES;
我假设您的django表将使用f" {app_label} _ {model}"的默认命名方案。所以,如果您的应用被命名为" my_app"而你的模型是"停止"那么你可以期待django管理一个名为" my_app_stops"
的表您可以使用django shell验证这一点
$ ./manage.py shell
from my_app.models import Stops
Stops._meta.db_table
我希望这会有所帮助。没有更多信息,我只能告诉你如何调查最明显的缺陷。
修改强> 如果您确定这是差异,您有几个选择: (1)重命名你的表以匹配Django,或 (2)强制django使用a Meta class
查看您现有的表格from django.db import models
class Stops(models.Model):
class Meta:
db_table = 'some_table_name'