Проблема с интеграцией 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,
}
}