将redactor javascript所见即所得编辑器与django集成。
django-redactoreditor的Python项目详细描述
这个包有助于在django中集成Redactorjavascript所见即所得编辑器。
安装
- pip安装:pip install django-redactoreditor(或将redactor目录添加到python路径)
- 将redactor应用程序添加到INSTALLED_APPS设置中。
用法
redactor应用程序提供了一个名为RedactorEditor的django小部件。它是任何TextArea小部件的替换。示例用法:
from django import forms from django.db import models from redactor.widgets import RedactorEditor class MyForm(forms.Form): about_me = forms.CharField(widget=RedactorEditor())
您还可以在实例化小部件时自定义任何redactor编辑器的settings:
class MyForm(forms.Form): about_me = forms.CharField(widget=RedactorEditor(redactor_settings={ 'autoformat': True, 'overlay': False }))
django redactor还包括一个小部件,其中包含一些自定义设置,可以使它在django管理中运行并看起来更好:
class MyAdmin(admin.ModelAdmin): formfield_overrides = { models.TextField: {'widget': AdminRedactorEditor}, }
最后,您可以将自定义css文件连接到编辑器的可编辑区域:
class MyForm(forms.Form): about_me = forms.CharField(widget=RedactorEditor( redactor_css="styles/text.css") )
用于指定css的路径可以是相对路径,也可以是绝对路径。如果路径以“/”、“http://”或“https://”开头,则将被解释为绝对路径,并保持原样。所有其他路径都将以STATIC_URL设置的值作为前缀(如果未定义static,则为MEDIA_URL)。
为了方便起见,还可以使用接受相同输入的表单字段。此字段可以在任何地方使用forms.CharField可以并接受相同的参数,但始终呈现一个redactor小部件:
from redactor.fields import RedactorField class MyForm(forms.Form): about_me = RedactorField( in_admin=True, redactor_css="styles/text.css", redactor_settings={'overlay': True} )
jquery
redactor javascript库需要jquery 1.9或更高版本才能运行。默认情况下,jquery包含在字段和小部件媒体中。但是,如果页面上的其他小部件或表单使用的是different版本的jquery,则可能会导致问题。如果您希望自己处理javascript依赖项管理,可以从redactor字段和wdiget的媒体中排除jquery:
class MyForm(forms.Form): about_me = RedactorField(include_jquery=False)
模板化
如果您使用的是管理员之外的redactor小部件,则需要确保您呈现了the form’s media。redactor小部件需要包含一些css和javascript才能正常工作:
<form> {{ myform.media }} {{ myform.as_p }} <input type="submit"/> </form>
国际化
如果希望在其他语言中使用redactor,只需指定lang设置。将自动加载正确的javascript语言文件:
class MyForm(forms.Form): about_me = forms.CharField(widget=RedactorEditor(redactor_settings={ 'autoformat': True, 'lang': 'es', 'overlay': False }))
django redactor是根据Creative Commons Attribution-NonCommercial 3.0许可证授权的。但是,对于购买了 对redactor.js库的合法商业许可。开源用户仍在非商业条款下,但合法的Imperavi许可证持有者却没有。