Представление Django 3.2 не работает при фильтрации по булеву полю
В настоящее время я обновляю проект Django с 2.2 до 3.2, но получаю ошибку от SQL Server при попытке загрузить представление:
ProgrammingError at /my/django/url ('42000', "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Выражение небулевого типа задано в контексте, где ожидается условие, около ')'. (4145) (SQLExecDirectW)")
У меня есть набор запросов, который фильтруется по булевому полю ('islead'), набор содержит .filter(islead=True), однако когда я загружаю представление, я вижу на панели отладки Django, что SQL запрос не включает "WHERE islead = TRUE", он содержит только "WHERE islead" без условия.
Это прекрасно работает в Django 2.2. Вот выдержка из моего кода:
models.py:
class LecturerCourseYear(models.Model):
ay = models.IntegerField(db_column='AY', primary_key=True)
code = models.CharField(db_column='Code', max_length=12)
lecturer = models.ForeignKey('Lecturers', models.DO_NOTHING, db_column='lecturer', max_length=12)
islead = models.BooleanField(db_column='IsLead')
views.py:
def edit_course(request, code, ay):
primary_lecturer_response = LecturerCourseYear.objects.filter(ay=ay, code=code, islead=True).order_by('position')
initialData = {'primary_lecturer': ','.join([lecturer.lecturer.id for lecturer in primary_lecturer_response]),
form = editCourseForm(initial=initialData)
return render(request, 'courses/edit-course.html', {'form': form})
Исправлено путем загрузки последней версии кода django-mssql-backend