Internal utilities for code sharing between django-fluent modules

pip install django-fluent-utils==3.0.1



This module is mainly used internally between other django-fluent apps. For the whole list of apps, see

This module provides:

  • Stubs to make integration with third-party apps optional
  • Django compatibility code
  • Shared code for fluent apps ("Don't repeat yourself")

Stub features


Support django-any-imagefield when it's available. This provides an improved ImageField and FileField.

It supports various third party media libraries, allowing django-fluent to use the media library of your choice.


The AnyUrlField enhances the standard Django URLField, when django-any-urlfield is installed.


Seemingly switch between django_comments or the older django.contrib.comments.


Stub the CurrentPageMixin, app_reverse() and mixed_reverse() when django-fluent-pages is not installed. This allows apps to revert to standard URLs when they can't provide URLs via a custom page type for the fluent-pages tree.


Optional support for tagging. It supports various applications:

django-fluent automatically uses one of these third-party apps when it's found in INSTALLED_APPS.

Internal API's

These API's are available for other django-fluent-.. modules:

  • fluent_utils.ajax.JsonResponse - a JsonResponse before Django 1.8 provided that.
  • fluent_utils.django_compat - imports for various features that moved or changed between Django versions.
  • fluent_utils.dry.admin.MultiSiteAdminMixin - mixin for the admin to filter on the parent_site field.
  • fluent_utils.dry.fields.HideChoicesCharField - avoid expanding choices in Django migrations.
  • fluent_utils.load.import_apps_submodule() - import a module in every application found in INSTALLED_APPS.
  • fluent_utils.load.import_class() - import a class via a Python path.
  • fluent_utils.load.import_settings_class() - import a class via a named setting.
  • fluent_utils.load.import_module_or_none() - import a module, only raises an ImportError for sub modules.
  • fluent_utils.softdeps.* - various soft dependencies, see above