|
|
# -*- coding: utf-8 -*-
|
|
|
from django.db import models
|
|
|
from django.contrib.admin import widgets as admin_widgets
|
|
|
from .widgets import UEditorWidget, AdminUEditorWidget
|
|
|
|
|
|
|
|
|
class UEditorField(models.TextField):
|
|
|
"""
|
|
|
百度HTML编辑器字段,初始化时,可以提供以下参数
|
|
|
initial:初始内容
|
|
|
toolbars:提供工具按钮列表,取值为列表,如['bold', 'italic'],取值为:mini,normal,full,代表小,一般,全部
|
|
|
imagePath:图片上传的路径,如"images/",实现上传到"{{MEDIA_ROOT}}/images"文件夹
|
|
|
filePath:附件上传的路径,如"files/",实现上传到"{{MEDIA_ROOT}}/files"文件夹
|
|
|
"""
|
|
|
|
|
|
def __init__(self, verbose_name=None, width=600, height=300,
|
|
|
toolbars="full", imagePath="", filePath="",
|
|
|
upload_settings={}, settings={}, command=None,
|
|
|
event_handler=None, **kwargs):
|
|
|
self.ueditor_settings = locals().copy()
|
|
|
kwargs["verbose_name"] = verbose_name
|
|
|
del self.ueditor_settings["self"], self.ueditor_settings[
|
|
|
"kwargs"], self.ueditor_settings["verbose_name"]
|
|
|
super(UEditorField, self).__init__(**kwargs)
|
|
|
|
|
|
def formfield(self, **kwargs):
|
|
|
defaults = {'widget': UEditorWidget(attrs=self.ueditor_settings)}
|
|
|
defaults.update(kwargs)
|
|
|
if defaults['widget'] == admin_widgets.AdminTextareaWidget:
|
|
|
defaults['widget'] = AdminUEditorWidget(
|
|
|
attrs=self.ueditor_settings)
|
|
|
return super(UEditorField, self).formfield(**defaults)
|
|
|
|
|
|
|
|
|
# 以下支持south
|
|
|
try:
|
|
|
from south.modelsinspector import add_introspection_rules
|
|
|
add_introspection_rules([], ["^DjangoUeditor\.models\.UEditorField"])
|
|
|
except:
|
|
|
pass
|