2016-03-07 72 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