Skip to main content

Build Coverage PyPI Download PyPI Python Versions PyPI License

django-ace provides integration for Ace - The High Performance Code Editor for the Web with Django.

django-ace is a fork of Kit Sunde’s django-ace-editor by Bradley Ayers and continued by Julien Palard et al.

This is another fork by Florian Demmer; Compare changelog and source to decide whether you need the changes or better use upstream.

Usage

from django import forms
from django_ace import AceWidget

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget)

Syntax highlighting and static analysis can be enabled by specifying the language:

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget(mode='css'))

Themes are also supported:

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget(mode='css', theme='twilight'))

To deactivate the syntax checker completely, disable the Web Worker:

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget(
        mode='css', theme='twilight', use_worker=False
    ))

All options, and their default values, are:

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget(
        mode=None,  # try for example "python"
        theme=None,  # try for example "twilight"
        use_worker=True,
        wordwrap=False,
        width="500px",
        height="300px",
        minlines=None,
        maxlines=None,
        showprintmargin=True,
        showinvisibles=False,
        usesofttabs=True,
        tabsize=None,
        fontsize=None,
        toolbar=True,
        readonly=False,
        showgutter=True,  # To hide/show line numbers
        behaviours=True,  # To disable auto-append of quote when quotes are entered
    ))

Installation

  1. Install using pip:

pip install django_ace
  1. Update INSTALLED_APPS:

INSTALLED_APPS = (
    # ...
    'django_ace',
)

Example Project

There’s an example project included in the source, to try it do:

# install in virtualenv
cd example/
virtualenv .env
. .env/bin/activate
pip install -e ..
# prepare sqlite database
./manage.py makemigrations app
./manage.py migrate
# user for admin access
./manage.py createsuperuser
# run dev-server
./manage.py runserver

Then browser to http://localhost:8000 or http://localhost:8000/admin.

Change log

v2.2.1

  • Update Ace editor to version v1.32.3

  • Expose extensions, contributed by @okaycj in upstream v1.32.0

v2.1.0

  • Update Ace editor to version v1.31.2

  • Add CSS to work with admin changes in Django 4.2. Now you can use width=”100%” without breaking the layout. (Anh Tran <anhtran.sky@gmail.com> in upstream v1.15.4)

  • Replace flake8 with ruff

v2.0.0

  • Update Ace editor to version v1.10.1 and use minified build

  • General cleanup and modernization of code

  • Update example with widget in TabularInline

  • Update packaging by Julien Palard

  • Python >= 3.6 is required

v1.1.0

  • Rewrite of init() function to support admin inline-forms

  • New widget option use_worker

  • Use template engine to generate widget HTML

  • Rewrite of boolean data attributes

  • Add tests, update example with admin integration

  • Last release supporting Python 2.7

v1.0.11

  • Support Grappelli inlines.

v1.0.10

  • FIX JavaScript error when using JavaScriptCatalog.

v1.0.9

  • New widget option showgutters to hide line numbers.

  • New widget option behaviours to avoid auto-insert of quotes.

v1.0.8

  • New widget option readonly.

  • Update ACE editor to version v1.4.12.

v1.0.7

  • New widget option toolbar.

  • Update ACE editor to version v1.4.8.

v1.0.6

  • New widget option fontsize.

  • Update ACE editor to version v1.4.7.

v1.0.5

  • New widget option tabsize.

  • Upgrade ACE editor to version v1.4.2.

v1.0.4

  • Update Django compatibility to >1.11,<=2.1

  • New widget options minLines, maxLines, showinvisibles, usesofttabs.

  • Upgrade ACE editor to version v1.4.0.

  • Updated example for Django 1.11

  • PEP8 improvements

v1.0.2

  • Upgrade ACE editor to version 1.1.8

  • Add support for showprintmargin

v1.0.1

  • Add support for Django 1.7 by removing deprecated imports.

v1.0.0

  • Initial release.

Release files for fdemmer-django-ace 2.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fdemmer-django-ace 2.2.1
File Size Uploaded
fdemmer-django-ace-2.2.1.tar.gz 2.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for fdemmer-django-ace 2.2.1
File Interpreter ABI Platform
fdemmer_django_ace-2.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 5.0 MB

Release files / fdemmer-django-ace-2.2.1.tar.gz

Download URL fdemmer-django-ace-2.2.1.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
2f10c233084b05dcbc1b9df06e6508a65aa4b316f65aaed33f2414c91bb2d232
BLAKE2b-256 checksum
How to use checksums
ea016eec4ee3416459c18e8b1c8bd2ae0ddbb221ca53eb4f9f763299193aea68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / fdemmer_django_ace-2.2.1-py3-none-any.whl

Download URL fdemmer_django_ace-2.2.1-py3-none-any.whl
Size 2.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
9e646bb289404f53163f12d66bfa7dd72d3b3a0ee1ff6e15fc9c6878516fb8c9
BLAKE2b-256 checksum
How to use checksums
1f72efdb4dfea0ff92b4e6bf4ac1fc2e54027aeaf8e3ccaa3755031c5c3eef6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

2.2.1 This release

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page