add: В доки добавлено инструкции по подключению CodeMirror с помощью миксина CodeMirrorFormMixin
This commit is contained in:
@@ -29,7 +29,7 @@ bash ./scripts/build-codemirror.sh
|
|||||||
|
|
||||||
## Как использовать в Django Admin
|
## Как использовать в Django Admin
|
||||||
|
|
||||||
### 1. Подключение в ModelAdmin
|
### 1. Стандартное подключение через Media класс
|
||||||
|
|
||||||
В вашем `admin.py` используйте `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
|
```python
|
||||||
# frontend/admin.py
|
# frontend/admin.py
|
||||||
@@ -80,7 +80,37 @@ class YourModelAdmin(admin.ModelAdmin):
|
|||||||
return formfield
|
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`
|
- `javascript`
|
||||||
- `css`
|
- `css`
|
||||||
|
|||||||
Reference in New Issue
Block a user