Проблема с интеграцией vite django (TypeError)

В настоящее время я работаю над интеграцией видео с моим проектом на Django, используя пакет django-vite. Однако при запуске сервера разработки на Django я сталкиваюсь со следующей ошибкой:

TypeError: django_vite.core.asset_loader.DjangoViteConfig() argument after ** must be a mapping, not bool

Настройка проекта:

Версия Django: 5.1.5
Версия django-vite: [Указать версию]

Конфигурация Vite:
Параметр vite.config.js настроен на вывод файлов сборки в статический каталог Django, и манифест включен.

Настройки Django:
в INSTALLED_APPS добавлен django_vite.

Конфигурация DJANGO_VITE определяется следующим образом:

DJANGO_VITE = {
    "dev_mode": DEBUG,
    "manifest_path": os.path.join(BASE_DIR, "static", "manifest.json"),
    "static_url_prefix": STATIC_URL,
}

файл vite.config.ts

export default defineConfig({
  plugins: [react(), tailwindcss()],
  test: {
    globals: true,
    environment: "jsdom",
    setupFiles: "./src/setupTests.js",
    include: ["**/__tests__/**/*.{js,jsx,ts,tsx}"],
  },
  base: "/static/", // Entspricht dem STATIC_URL in Django
  build: {
    outDir: "../backend/static/", // Pfad zum statischen Ordner von Django
    manifest: true,
    rollupOptions: {
      input: "src/main.jsx", // Haupteinstiegspunkt
    },
  },
});

Сведения об ошибке:

Обратная трассировка указывает на то, что ошибка вызвана классом DjangoViteConfig в пакете django_vite:

File "path_to_python_env\Lib\site-packages\django_vite\core\asset_loader.py", line 731, in _apply_django_vite_settings
    config = DjangoViteConfig(**config)
TypeError: django_vite.core.asset_loader.DjangoViteConfig() argument after ** must be a mapping, not bool

Проверка конфигурации: Убедитесь, что параметры DJANGO_VITE правильно определены как словарь.

Проверка зависимостей: Проверено, что все связанные пакеты обновлены и совместимы друг с другом.

Проверка кода: Поиск по базе кода для выявления любых непреднамеренных логических значений, передаваемых там, где ожидается сопоставление.

DEBUG является логическим значением и DjangoViteConfig ожидает ввода словаря, поэтому он неверно интерпретирует DEBUG. Измените настройки DJANGO_VITE в settings.py:

DJANGO_VITE = {
    "dev_mode": bool(DEBUG),  # cast DEBUG to bool
    "manifest_path": os.path.join(BASE_DIR, "static", "manifest.json"),
    "static_url_prefix": STATIC_URL,
}

Проблема в том, что ваш DJANGO_VITE неправильно настроен

DJANGO_VITE = {
"dev_mode": DEBUG,
"manifest_path": os.path.join(BASE_DIR, "static", "manifest.json"),
"static_url_prefix": STATIC_URL,

}

В нем отсутствует ключевое слово по умолчанию, пример использования которого приведен ниже:

DJANGO_VITE = {
    "default": {
"dev_mode": DEBUG,
"manifest_path": os.path.join(BASE_DIR, "static", "manifest.json"),
"static_url_prefix": STATIC_URL,
    }
}
Вернуться на верх