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 сообщает: enter image description here

Однако ограничение проверки было обновлено в Django V5: enter image description here

Такое ощущение, что 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, но я могу ошибаться.

Вернуться на верх