Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Django widgets for replacing textareas with CodeMirror2, an in-browser code editor

Project Description

Django widgets for replacing textareas with CodeMirror, an in-browser code editor. Tested on Django 1.6+, support Python 2.7 and Python 3.4+.


  1. run pip install django-codemirror2
  2. Add codemirror2 to INSTALLED_APPS
  3. Collect static files: python collectstatic

To use django-codemirror2 directly from git, you need to initialize the Codemirror submodule by running git submodule init && git submodule update.


from django import forms
from codemirror2.widgets import CodeMirrorEditor

class TestForm(forms.Form):
    css = forms.Charfield(widget=CodeMirrorEditor(options={'mode': 'css'}))

The options argument will be passed as JSON to CodeMirror.fromTextArea, see for possible values. Do not pass user-controlled data as options, as this can lead to an XSS vulnerability.

If you want to use a mode that depends on other modes, for example htmlmixed, you need to load the dependencies, too, by passing the modes parameter:

html = forms.Charfield(widget=CodeMirrorEditor(modes=['css', 'xml', 'javascript', 'htmlmixed'],
            options={'mode': 'htmlmixed'}))

If you want to customize the Javascript used to initialize the CodeMirror editor, use script_template:

foo = forms.Charfield(widget=CodeMirrorEditor(options={'mode': 'xml'},

You can base your script template on the included template codemirror_script.html.

Example app

There is a simple example app included. To run it:

  1. run tox -e devenv
  2. run ./
  3. visit http://localhost:8000/admin/testapp/ in your browser.
Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django-codemirror2-0.2.tar.gz (887.3 kB) Copy SHA256 Checksum SHA256 Source Feb 3, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting