当我尝试使用model.objects.filter(mybooleanfield=True)时,会出现以下错误
('42000', "[42000] [Microsoft] [SQL Server Native Client 11.0] [SQL Server] A non-Boolean expression was specified in a context where a condition was expected, near 'mybooleanfield'. (4145) (SQLExecDirectW) ")但这只发生在使用带有一些BooleanField的过滤器时,如果我使用PositiveIntegerField, CharField, DateTimeField or TextField,过滤器没有问题。我想这可能适用于我使用的verion
Python 3.9.0
Django 3.1.3
Pyodbc 4.0.30
Django-mssql-backend 2.8.1我需要使用我的BooleanField作为条件。有人知道为什么会这样吗?
发布于 2020-12-08 07:07:42
这是由Django 3.1.x引起的。更多信息在这里:https://github.com/ESSolutions/django-mssql-backend/issues/69。
你可以将django降级到3.0.x,或者(我推荐)使用https://github.com/ESSolutions/django-mssql-backend的最新版本,在这个版本中,Django 3.1.x的补丁已经解决了这个问题。此修补程序之后一直没有发布。
https://stackoverflow.com/questions/65190586
复制相似问题