---
slug: "django-admin-で-ace-を使う"
title: "Using ACE in Django Admin"
description: "1. Add to requirements.txt\ndjango-ace\n"
url: "https://www.ytyng.com/en/blog/django-admin-で-ace-を使う"
publish_date: "2017-03-31T10:52:15Z"
created: "2017-03-31T10:52:15Z"
updated: "2026-02-27T04:29:10.295Z"
categories: []
keywords: ""
featured_image_url: "https://media.ytyng.com/resize/20230812/9cbaad0ed2f74eab933d8fa58a36460f.png.webp?width=768"
has_video: false
has_music: false
video_urls: []
music_urls: []
lang: "en"
---

# Using ACE in Django Admin

<h2>1. Add to requirements.txt</h2>
<pre>django-ace</pre>
<p></p>
<h2>2. pip install</h2>
<pre>pip install -r requirements.txt</pre>
<pre>(Alternatively, $ pip install django-ace)</pre>
<p></p>
<h2>3. Add to INSTALLED_APPS in settings</h2>
<pre>&nbsp;&nbsp;&nbsp; 'django_ace',</pre>
<p></p>
<h2>4. Modify ModelAdmin</h2>
<pre>from django_ace import AceWidget<br />from django.db import models as django_models<br /><br />...<br />&nbsp;&nbsp;&nbsp; formfield_overrides = {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; django_models.TextField: {'widget': AceWidget(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mode="django", width="100%", height="500px")},<br />&nbsp;&nbsp;&nbsp; }</pre>
<p>Alternatively, you can create a separate form to set different modes for different text fields</p>
<pre>from django import forms as django_forms<br />class TeikeiTypeAdminForm(django_forms.ModelForm):<br />&nbsp;&nbsp;&nbsp; def __init__(self, *args, **kwargs):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super().__init__(* args, **kwargs)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.fields['note'].widget = AceWidget(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mode="markdown", width="100%", height="500px")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.fields['js_function'].widget = AceWidget(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mode="javascript", width="100%", height="500px")<br /><br />class TeikeiTypeAdmin(admin.ModelAdmin):<br />&nbsp;&nbsp;&nbsp; form = TeikeiTypeAdminForm<br />    list_display = (<br />        ...</pre>
<p>*Highly recommended if you're using Mezzanine, as it works very well.</p>
