Skip to main content

Usage

from django import forms
from django_ace import AceWidget

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget(width=None, height=None))

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'))

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"
        wordwrap=False,
        width="500px",  # Deprecated, pass None and use CSS
        height="300px",  # Deprecated, pass None and use CSS
        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
        useworker=True,
        extensions=None,
        basicautocompletion=False,
        liveautocompletion=False,
    ))

For a ModelForm, for example in Django admin, it can be used like this:

class PageForm(forms.ModelForm):
    class Meta:
        model = Page
        fields = ("title", "body")
        widgets = {
            "body": AceWidget(
                mode="markdown", theme="twilight", width=None, height=None
            ),
        }

class PageAdmin(admin.ModelAdmin):
    form = PageForm

Install

  1. Install using pip:

    pip install django_ace
  2. Update INSTALLED_APPS:

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

Example Project

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

cd example/
python -m venv .venv
source .venv/bin/activate
pip install -e ..
./manage.py migrate
./manage.py runserver

Then browser to http://localhost:8000.

Change log

v1.44.0

  • Update ACE editor to version v1.44.0.

v1.43.5

  • Update ACE editor to version v1.43.5.

  • Added a flag to activate vim keybindings.

  • Added a flag to disable current line highlighing.

v1.43.3

  • Update ACE editor to version v1.43.3.

v1.42.0

  • Update ACE editor to version v1.42.0.

v1.39.1

  • Update ACE editor to version v1.39.1.

Add a useStrictCSP option.

v1.38.0

  • Update ACE editor to version v1.38.

The width and height arguments (which sets the HTML style attribute) are starting a slow change of their default values. Starting from this version do not rely in their default arguments, give them explicitly!

They are changing from width="500px", height="300px" (setting the HTML style argument) to width=None, height=None (relying on the CSS).

The default CSS uses width: 500px; height: 300px, so changing from no width and no height to width=None, height=None is an easy correct move.

If you need custom size, prefer using width=None, height=None (the future default values) and use CSS to customize the size, this permits more secure CSP rules.

v1.37.5

  • Update ACE editor to version v1.37.5.

  • Use minified and non-conflict ACE instead of basic.

  • Expose two new options: enablebasicautocompletion and enableliveautocompletion.

v1.36.2

  • Update ACE editor to version v1.36.2.

v1.32.4

  • Expose useworker, contributed by @mounirmesselmeni.

v1.32.3

  • Update ACE editor to version v1.32.3.

v1.32.0

  • Update ACE editor to version v1.32.0.

  • Expose extensions, contributed by @okaycj.

v1.31.1

  • Update ACE editor to version v1.31.1.

v1.26.0

  • Update ACE editor to version v1.26.0.

v1.24.1

  • Update ACE editor to version v1.24.1.

v1.23.4

  • Update ACE editor to version v1.23.4.

v1.22.1

  • Update ACE editor to version v1.22.1.

v1.19.0

  • Update ACE editor to version v1.19.0.

v1.15.4

  • Added CSS to work with new admin in Django 4.2. Now you can use width=”100%” without breaking the layout.

v1.15.3

  • Update ACE editor to version v1.15.3.

v1.14.0

  • Update ACE editor to version v1.14.0.

  • Follow ACE version numbers.

v1.0.13

  • Update ACE editor to version v1.11.2.

v1.0.12

  • Update ACE editor to version v1.5.0.

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 django-ace 1.44.0

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

Source distribution (sdist)

Source distribution for django-ace 1.44.0
File Size Uploaded
django_ace-1.44.0.tar.gz 2.5 MB Details

Built distribution (wheel)

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

Total release size: 5.4 MB

Release files / django_ace-1.44.0.tar.gz

Download URL django_ace-1.44.0.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
1d3a532fae233acd286fd217879a065a074ca46f7e837ea2d73cb736b07fc72b
BLAKE2b-256 checksum
How to use checksums
fbe1b6125cf74798293fdc32fa9aa3859632827f573d43f90eef2784f221baf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.19

Release files / django_ace-1.44.0-py3-none-any.whl

Download URL django_ace-1.44.0-py3-none-any.whl
Size 2.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
e3ba97003efd85878e268e7480193322bceb429acf58c50ffb3e8fb8ebfa9683
BLAKE2b-256 checksum
How to use checksums
bb7d9c41839a1ee48c560a7f863d808d86b74ad9b72246cb17815a46cbb89512
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.19

Release history Release notifications | RSS feed

This release

1.44.0 This release

2 release files

1.43.5

2 release files

1.43.3

2 release files

1.42.0

2 release files

1.39.2

2 release files

1.39.1

2 release files

1.38.0

2 release files

1.36.2

2 release files

1.32.4

2 release files

1.26.0

2 release files

1.24.1

2 release files

1.23.4

2 release files

1.22.1

2 release files

1.14.0

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

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