Object.Filter() 使用布尔字段时出错
Object.Filter() error using boolean fields
当我尝试使用 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
过滤器就没有问题。我认为这可能适用于我使用的版本
Python 3.9.0
Django 3.1.3
Pyodbc 4.0.30
Django-mssql-backend 2.8.1
我需要使用我的 BooleanField
作为条件。有人知道为什么会这样吗?
这是由 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.自此补丁后没有发布。
当我尝试使用 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
过滤器就没有问题。我认为这可能适用于我使用的版本
Python 3.9.0
Django 3.1.3
Pyodbc 4.0.30
Django-mssql-backend 2.8.1
我需要使用我的 BooleanField
作为条件。有人知道为什么会这样吗?
这是由 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.自此补丁后没有发布。