0

当我尝试在 Django 中运行特定于数据库的操作时,出现以下错误。

('42S02', "[42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]无效的对象名称'django_session'。(208) (SQLExecDirectW); [42S02] [Microsoft][ODBC Driver 17 for SQL服务器][SQL Server]无法准备语句。(8180)")

我一定错过了一个设置。默认情况下,Django 会发送格式错误的 SQL 命令字符串,这里有两个格式错误的示例。第一个是当我尝试登录管理门户时:

SELECT TOP 1 (1) AS [a]
FROM [django_session]
WHERE [django_session].[session_key] = ?

当我尝试从名为的表中加载数据时dbo.Testing

SELECT TOP 21 [TheAppName_testing].[id], [TheAppName_testing].[first_name], [TheAppName_testing].[last_name]
FROM [TheAppName_testing]
WHERE [TheAppName_testing].[id] = %s

我对几个表使用不同的模式。如何将 Django 指向正确的设置,以便它实际上可以指向 SQL Server 中的正确表?

4

1 回答 1

0

我发现使用 Django 指向特定模式的一种简单方法是仅向数据库端的用户授予对所需模式的访问权限。使用该用户连接到 Django 的 settings.py 中的数据库,当您迁移时,它将只能访问您想要的模式。

于 2021-10-09T02:55:35.263 回答