РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
749 of 818 menu

Функция import_string

Функция import_string из модуля django.utils.module_loading позволяет импортировать объекты (классы, функции, переменные) по их строковому пути. Это удобно, когда нужно динамически загружать объекты на основе конфигурации или пользовательского ввода. Функция принимает строку с полным путем к объекту и возвращает сам объект, готовый к использованию.

Синтаксис

from django.utils.module_loading import import_string obj = import_string('path.to.module.ClassName')

Параметры функции:

  • dotted_path - строка, содержащая путь к объекту в формате 'module.submodule.ClassName'

Пример

Давайте импортируем модель Article и получим все записи из базы данных:

from django.utils.module_loading import import_string # Импортируем модель Article Article = import_string('myapp.models.Article') # Используем модель res = Article.objects.all() print(res)

Результат выполнения кода:

[<Article: article 1>, <Article: article 2>, <Article: article 3>]

Функция импортирует указанный класс и возвращает его, после чего с ним можно работать как с обычным классом.

Пример

Рассмотрим импорт функции для динамического форматирования даты и времени:

from django.utils.module_loading import import_string from datetime import datetime # Импортируем функцию для форматирования format_func = import_string('django.utils.timezone.localtime') # Используем импортированную функцию now = datetime.now() res = format_func(now) print(res)

Результат выполнения кода:

"2026-09-07 15:30:45+03:00"

Функция успешно импортировала метод localtime и применила его к объекту даты.

Пример

Импортируем класс из стандартной библиотеки Python:

from django.utils.module_loading import import_string # Импортируем класс datetime из стандартной библиотеки datetime_class = import_string('datetime.datetime') # Создаём объект datetime res = datetime_class(2026, 9, 7, 12, 0, 0) print(res)

Результат выполнения кода:

"2026-09-07 12:00:00"

Функция может импортировать не только объекты Django, но и любые другие объекты из установленных пакетов.

Пример

Рассмотрим обработку ошибок при импорте:

from django.utils.module_loading import import_string from django.core.exceptions import ImproperlyConfigured try: # Пытаемся импортировать несуществующий класс obj = import_string('myapp.models.NonExistentClass') except ImproperlyConfigured as e: res = f"Error: {e}" print(res)

Результат выполнения кода:

"Error: Module 'myapp.models' does not define a 'NonExistentClass' attribute/class"

При попытке импортировать несуществующий объект функция выбрасывает исключение ImproperlyConfigured, что позволяет обработать ошибку и предотвратить падение приложения.

Смотрите также

  • функция lazy,
    которая откладывает выполнение кода до момента использования
  • декоратор cached_property,
    который кеширует результат свойства
  • функция force_str,
    которая приводит значение к строке
  • функция mark_safe,
    которая помечает строку как безопасную для вывода
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить