Исключение Django 3.2: django.core.exceptions.ImproperlyConfigured

Я обновляюсь до django 3.2, но, согласно примечаниям к выпуску, он говорит:

Параметр SECRET_KEY теперь проверяется на допустимое значение при первом доступе, а не при первой загрузке параметров. Это позволяет запускать команды управления, которые не зависят от SECRET_KEY, без необходимости указывать значение. Как следствие этого вызов configure() без предоставления действительного SECRET_KEY, а затем переход к параметрам settings.SECRET_KEY теперь вызовет исключение ImproperlyConfigured.

Ошибка: django.core.exceptions.ImproperlyConfigured: Cannot import 'users'. Check that 'apps.users.apps.UsersConfig.name' is correct.

Пользователи apps.py:

      from django.apps import AppConfig

class UsersConfig(AppConfig):
    name = 'users'

Я думаю, что эта ошибка связана с тем, что он работал с django==3.1.7. Может ли кто-нибудь помочь мне решить эту проблему? Как я могу проверить, действителен ли мой секретный ключ, а также при необходимости сгенерировать новый?

4 ответа

Я не думаю, что ваша ошибка напрямую связана с этим SECRET_KEY измените свой вопрос.

AppConfig.nameдолжен быть полный путь Python к приложению. Поскольку у вас, похоже, есть users внутри apps модуль, вы должны использовать 'apps.users' вместо 'users'

      class UsersConfig(AppConfig):
    name = 'apps.users'

Если ваши приложения django находятся в папке типа (, apps, applicationsи т. д.), вы должны указать абсолютный путь в вашем файле app_name/apps.py к nameатрибут, см. изображение ниже.

На этом изображении мой users(1) приложение находится в appпапка, поэтому нужно использовать app.users(3), (4).

I am having this issue suddenly with Django 3.2. Why now I am not exactly sure, but adding this to my settings.py file fixed it for me. I need to understand the structural issue causing this. It might be because our Django project contains many apps grouped together.

      AppConfig.default = False

https://docs.djangoproject.com/en/3.2/ref/applications/#django.apps.AppConfig.default

Решением для меня было просто удалить apps.py файл полностью - теперь Django удалось найти приложение автоматически.

Другие вопросы по тегам