Tinymce отлично работает в моем приложении, но не в admin — Django

#django #django-admin #tinymce

#django #django-admin #tinymce

Вопрос:

У меня есть форма в моем приложении, которая имеет content атрибут и использует tinymce следующим образом:

 from tinymce.models import HTMLField

class SomeModel(models.Model):
   content = HTMLField('Content', null=True)
  

Я также настроил свой tinymce в установленных приложениях и зарегистрировал его URL.

В моем приложении он работает нормально, и пользователь может редактировать и вводить свой контент с помощью tinymce. но когда я регистрирую эту модель для администратора, все поля отображаются нормально, кроме содержимого, которое, похоже, не имеет никакого способа ввода (и поскольку это обязательное поле, это означает, что я не могу вводить новые элементы через администратора).

это выглядит так в admin: введите описание изображения здесь

как я могу сделать tinymce также доступным на экране администратора?

бонусный вопрос: есть ли безопасный способ использовать tinymce, позволяя пользователям использовать tinymce (в настоящее время я использую form | safe , что, как я предполагаю, на самом деле небезопасно.

Ответ №1:

Создать ModelForm

 class BlogForm(ModelForm):
    body = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
  

Admin.py

 from models import Blog
from forms import BlogForm

class BlogAdmin(ModelAdmin):
    form = BlogForm()
  

Комментарии:

1. У меня уже была форма. и все остальные поля из этой формы отображаются, кроме tinymce. Я попытался создать класс администратора, как вы показали, и установить атрибут form для моей формы. не помогло

2. смотрите, нет никакой другой конфигурации, посмотрите на свой код, там должна быть меньшая ошибка

3. это не очень полезно