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 = PageFormInstall using pip:
pip install django_ace
Update
INSTALLED_APPS:INSTALLED_APPS = ( # ... 'django_ace', )
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 runserverThen browser to http://localhost:8000.
- Update ACE editor to version v1.44.0.
- Update ACE editor to version v1.43.5.
- Added a flag to activate vim keybindings.
- Added a flag to disable current line highlighing.
- Update ACE editor to version v1.43.3.
- Update ACE editor to version v1.42.0.
- Update ACE editor to version v1.39.1.
Add a useStrictCSP option.
- 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.
- Update ACE editor to version v1.37.5.
- Use minified and non-conflict ACE instead of basic.
- Expose two new options: enablebasicautocompletion and enableliveautocompletion.
- Update ACE editor to version v1.36.2.
- Expose useworker, contributed by @mounirmesselmeni.
- Update ACE editor to version v1.32.3.
- Update ACE editor to version v1.32.0.
- Expose extensions, contributed by @okaycj.
- Update ACE editor to version v1.31.1.
- Update ACE editor to version v1.26.0.
- Update ACE editor to version v1.24.1.
- Update ACE editor to version v1.23.4.
- Update ACE editor to version v1.22.1.
- Update ACE editor to version v1.19.0.
- Added CSS to work with new admin in Django 4.2. Now you can use width="100%" without breaking the layout.
- Update ACE editor to version v1.15.3.
- Update ACE editor to version v1.14.0.
- Follow ACE version numbers.
- Update ACE editor to version v1.11.2.
- Update ACE editor to version v1.5.0.
- Support Grappelli inlines.
- FIX JavaScript error when using
JavaScriptCatalog.
- New widget option
showguttersto hide line numbers. - New widget option
behavioursto avoid auto-insert of quotes.
- New widget option
readonly. - Update ACE editor to version v1.4.12.
- New widget option
toolbar. - Update ACE editor to version v1.4.8.
- New widget option
fontsize. - Update ACE editor to version v1.4.7.
- New widget option
tabsize. - Upgrade ACE editor to version v1.4.2.
- 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
- Upgrade ACE editor to version 1.1.8
- Add support for showprintmargin
- Add support for Django 1.7 by removing deprecated imports.
- Initial release.