我是 Django 的新手,我在一个使用 mysql 数据库的项目中工作。 他们将数据库导入到 Django 模型中,看起来它没有遗漏任何东西。但是,当我使用 Django 进行查询时,它说缺少一个表。我检查了数据库中的表名,它是匹配的。很奇怪。我还是通过使用语法“.using('db_config').values('column1', 'column2')”解决了这个问题
模型如下:
class UserRoles(models.Model):
role_id = models.AutoField(primary_key=True)
class Meta:
managed = False
db_table = 'user_roles'
给出错误的命令:
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:另一件奇怪的事情是元标记“unique_together”也不起作用。我不得不使用方法“值”来使查询工作。我不知道它是否有某种关联。
最佳答案
这与 values
无关,您使用的是 using
第二个查询中的方法用于告诉 django 您要查询哪个数据库。
从今以后,您正在寻找一个单独的数据库,该数据库确实应用了相关的迁移
关于python - Django 说该表不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35848769/