Welcome to django-textplusstuff’s documentation!

Travis CI Status Coverage Status Latest Version



A django field that makes it easy to intersperse ‘stuff’ into blocks of text.


Full documentation available at Read the Docs.

A Flexible Interface

django-textplusstuff provides a simple interface for returning the contents of your field however you like: as either markdown-flavored text, valid HTML markup (with or without ‘stuff’ interspersed) or even plain text (with all markdown formatting removed).

Keep Track of Your Content

django-textplusstuff also keeps track of which model instances are associated within each TextPlusStuffField (via the TextPlusStuffLink model) so you can see where all your textplusstuff-integrated content is used across your django project.

Easy Integration

Registering existing models for use in TextPlusStuffFields is as easy as integrating a model into the admin.

Designer/Front-End Developer Friendly

Each model registered with django-textplusstuff can have as many ‘renditions’ as you like which keeps business logic DRY while enabling designers and front-end developers to have control over how content is displayed.

Current Version



  • markdown2 >= 2.3.x
  • beautifulsoup4 >= 4.4.0
  • django >= 1.6.x
  • djangorestframework >= 2.4.4

Python Compatibility

  • 2.7.x
  • 3.4.x
  • 3.5.x

Django Compatibility

  • 1.7.x
  • 1.8.x
  • 1.9.x

Django REST Framework Compatibility

  • 2.4.4
  • 3.0.x
  • 3.1.x
  • 3.2.x
  • 3.3.x (NOTE: Django 1.6.x is not compatible with DRF 3.3.x)

Release Notes


  • Removed need to call findstuff() to discover stuff modules. Now we use Django’s built in autodiscover_modules function and set everything up in the AppConfig.
  • Removed Django 1.6.x compatibility


  • Added Python 3.5 support
  • Deprecated Python 3.3 support
  • Added Django 1.9.x compatibility


  • Added as_json method to TextPlusStuffField
  • Added a new field (TextPlusStuffConstructedField) and signal (update_constructed_fields) that can be leveraged to improve speed/performance.


  • Fixed a UnicodeDecodeError bug that arose in Python 2.7.5 when encoding text nodes that had non-ASCII encoded HTML entities.




  • Squashed a bug that prevented TextPlusStuffField from serializing correctly (when using dumpdata).


  • Added Django REST Framework serialization for TextPlusStuffField


  • Fixed a Python 2.7.x-related encoding issue in the Stuff registry.


  • Another pip installation hotfix: including template files in distribution.


  • Squashed pip installation bug


  • Initial open source release

Roadmap to v1.0

  • Support Django 1.10 - 2.0
  • Create a javascript powered editor for writing markdown-flavored text and placing tokens.
  • textplusstuff API POST support (so model instances registered with the stuff_registry can be created directly from a TextPlusStuff field widget)
  • Create an example registered model to explain how the rendition/token architecture works.
  • Document ‘Constructed Field’ functionality to improve performance.
  • Document ‘as_json’ method on a TextPlusStuff instance.