Python/Django - 连接遗留SQL Server数据库时出现错误“AttributeError: 'module' object has no attribute 'sqlserver_ado'”

0 投票
1 回答
895 浏览
提问于 2025-04-18 01:26

我正在用 django-mssql 和 pywin32-218.win-amd64-py2.7 把我的 Django 应用连接到一个 SQL Server 数据库。

如果我从头开始创建模型并同步数据库,一切都运行得很好。

不过,我想连接到一个已经存在的 SQL Server 数据库。我按照 这些说明 操作。

最后我得到了以下模型:

from __future__ import unicode_literals

from django.db import models


class Payload(models.Model):
id = models.sqlserver_ado.fields.BigAutoField(db_column='Id') # Field name made lowercase.
code = models.CharField(db_column='Code', max_length=10) # Field name made lowercase.
body = models.TextField(db_column='Body') # Field name made lowercase.

class Meta:
    managed = False
    db_table = 'Payload'

但是,当我尝试运行 'runserver' 时,出现了以下错误:

文件 "C:\Users\luke\PycharmProjects\project\API\models.py",第 7 行,Payload 中 id = models.sqlserver_ado.fields.BigAutoField(db_column='Id') # 字段名已转为小写。 AttributeError: 'module' 对象没有属性 'sqlserver_ado'

不过,如果我把这一行 "id = models.sqlserver_ado.fields.BigAutoField(db_column='Id') # 字段名已转为小写。" 注释掉,

一切就能正常启动。

有什么想法吗?!

1 个回答

1

如果你已经安装了sqlserver_ado,那么可以这样导入BigAutoField

from sqlserver_ado.fields import BigAutoField

接下来,把id = models.sqlserver_ado.fields.BigAutoField(db_column='Id') # 字段名称变成小写替换成

id = BigAutoField(db_column='Id') # Field name made lowercase.

撰写回答