Django轻松使用富文本编辑器-KindEditor
2010-12-16 10:44 码农.KEN 阅读(5055) 评论(8) 编辑 收藏 举报由于需要在django admin中使用到富文本编辑器,由于我比较喜欢KindEditor,于是写了个自定义widget
1、首先从KindEditor主页下载,并解压至你的static文件存放目录(略...)
2、编写自定义widget:
from django import forms
from django.conf import settings
class KindEditor(forms.Textarea):
class Media:
js = (settings.MEDIA_URL + 'js/widgets/kindeditor.js',)
css = (settings.MEDIA_URL + 'js/widgets/kindeditor.css',)
def __init__(self, attrs = {}):
attrs['rel'] = 'kind'
super(KindEditor, self).__init__(attrs)
3、在form中使用上面的widget:
from django import forms
from app.models import MyModel
from django.contrib import admin
class MyModelAdminForm(forms.ModelForm):
pass
class Meta:
model = MyModel
widgets = {
'fieldname':KindEditor()
}
class MyModelAdmin(admin.ModelAdmin):
form = MyModelAdminForm
admin.site.register(MyModel, MyModelAdmin)
4、需要在模板中使用JS来初始化KindEditor(请确保你的模板中已加载jQuery, django admin中已自带,不过namespace换到了django之下):
{{block.super}}
<script type="text/javascript">
django.jQuery(document).ready(function(){
django.jQuery("textarea[rel='kind']").each(function(n){
KE.show({
id : django.jQuery(this).attr("id"),
});
});
});
</script>
{%endblock%}
4、需要注意的地方:
a) 所下载的kindeditor文件包存放的位置及settings里的MEDIA_URL地址(其实就是保证最终生成的JS和CSS访问路径是正确的)
b) 若非django admin的模板,请自行加载jQuery