Pylance использует Django V4 после обновления до Django V5
У меня есть такая модель:
class Test(models.Model):
a = models.TextField(null=True, blank=True)
b = models.TextField(null=True, blank=True)
class Meta:
constraints = [
models.CheckConstraint(
condition=models.Q(a__isnull=False) | models.Q(b__isnull=False),
name="not_both_null",
),
]
После перехода на Django V5 код VS сообщает:
Однако ограничение проверки было обновлено в Django V5:
Такое ощущение, что Pylance каким-то образом использует «кэшированную» старую версию.
Я пробовал следующие способы:
- Обновите расширения Python и Pylance до последних версий.
- Перезапустите VS Code/перезагрузите окно.
- Перезапустите сервер Pylance.
- Установите 'python.analysis.extraPaths' на мой venv.
- Переустановите Pylance.
Есть ли другие способы, которые я могу попробовать?
Я нашел временный обходной путь, после ручного удаления:
~/.vscode/extensions/ms-python.vscode-pylance-2024.12.1/dist/bundled/stubs/django-stubs
Тогда Pylance подбирает правильное определение из моего venv. Я думаю, что это предварительно поставляемая версия django-stubs от Microsoft, но я могу ошибаться.