2016-03-07 70 views
1

我是Django的新手,我正在使用mysql数据库的项目中工作。 他们将数据库导入到Django模型中,它似乎没有丢失任何东西。但是,当我用Django进行查询时,发现表格丢失。我检查了数据库中的表名,它是匹配的。很奇怪。我使用语法反正解决了这个问题Django说这个表不存在

该模型是以下“采用(‘DB_CONFIG’)VALUES(‘列1’,‘列2’)。”:给

​​3210

命令错误:

UserRoles.objects.filter(role_id=number) 

不引发错误的命令:

r = UserRoles.objects.using('db_config').values('role_id') 
q = r.filter(role_id=number) 

错误为以下内容:

django.db.utils.OperationalError: no such table: user_roles 

我的问题在这里,为什么Django的以前无法找到表?为什么我需要使用方法“值”来查找行??我检查过,所有的字段都是匹配的。我还运行了makemigrations,之前的syncdb

PS:另一个奇怪的事情是,metatag“unique_together”没有工作。我不得不使用方法“值”来使查询工作。我不知道它是否有关联。

回答

2

这与values无关,您在第二个查询中使用using方法,该方法用于告诉django要查询哪个数据库。

今后你正在寻找一个单独的数据库,它有相关的迁移应用

+2

这是真的。谢谢!我感到有点尴尬,我没有看到...我检查了,我必须在“使用”方法之后使用方法.all()。 – mk2