From dd2c57d42a274c96f200a6383a930f5ec0d9715b Mon Sep 17 00:00:00 2001 From: erjemin Date: Fri, 17 Jul 2026 19:23:34 +0300 Subject: [PATCH] =?UTF-8?q?add:=20=D0=92=20=D0=B4=D0=BE=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=B8?= =?UTF-8?q?=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=86=D0=B8=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8E=20CodeMirror=20=D1=81=20=D0=BF=D0=BE=D0=BC=D0=BE?= =?UTF-8?q?=D1=89=D1=8C=D1=8E=20=D0=BC=D0=B8=D0=BA=D1=81=D0=B8=D0=BD=D0=B0?= =?UTF-8?q?=20CodeMirrorFormMixin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/CODEMIRROR_INTEGRATION_GUIDE.md | 38 +++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/docs/CODEMIRROR_INTEGRATION_GUIDE.md b/docs/CODEMIRROR_INTEGRATION_GUIDE.md index 516a96d..de599e1 100644 --- a/docs/CODEMIRROR_INTEGRATION_GUIDE.md +++ b/docs/CODEMIRROR_INTEGRATION_GUIDE.md @@ -29,7 +29,7 @@ bash ./scripts/build-codemirror.sh ## Как использовать в Django Admin -### 1. Подключение в ModelAdmin +### 1. Стандартное подключение через Media класс В вашем `admin.py` используйте `Media` класс для подключения необходимых файлов. @@ -47,9 +47,9 @@ class YourModelAdmin(admin.ModelAdmin): ) ``` -### 2. Активация для полей +### 1.1 Активация для полей (стандартная) -Чтобы превратить стандартный `Textarea` в редактор CodeMirror, используйте кастомную форму или метод `formfield_for_dbfield` и добавьте к виджету специальные `data-` атрибуты. +Чтобы превратить стандартный `Textarea` в редактор CodeMirror, используйте метод `formfield_for_dbfield` и добавьте к виджету специальные `data-` атрибуты. ```python # frontend/admin.py @@ -80,7 +80,37 @@ class YourModelAdmin(admin.ModelAdmin): return formfield ``` -### 3. Поддерживаемые языки +### 1.2 Подключение с помощью CodeMirrorFormMixin (рекомендуется) + +Для удобства используйте готовый миксин `CodeMirrorFormMixin` из `frontend/admin.py`. Он автоматически подключает Media и предоставляет helper метод для конфигурации полей. + +```python +# frontend/admin.py + +from frontend.admin import CodeMirrorFormMixin + +class MyModelForm(CodeMirrorFormMixin): + """Форма с поддержкой CodeMirror""" + class Meta: + model = MyModel + fields = ('field1', 'field2', 'j_metadata') + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + # Helper метод для быстрой конфигурации поля + self.setup_codemirror_field('j_metadata', 'json', 'codemirror-width-l') + +class MyModelAdmin(admin.ModelAdmin): + form = MyModelForm + # Media автоматически наследуется из MyModelForm! +``` + +**Преимущества миксина:** +- ✅ Media подключается автоматически +- ✅ Helper метод `setup_codemirror_field()` упрощает конфигурацию +- ✅ Используется во всех админ-формах LPON (TbOffer, TbArtist, TbLabel, и т.д.) + +### 2. Поддерживаемые языки - `javascript` - `css`