| 12345678910111213141516171819202122232425262728293031323334 |
- #coding: utf-8
- from django import forms
- from widgets import UEditorWidget
- from DjangoUeditor.models import UEditorField as ModelUEditorField
- class UEditorField(forms.CharField):
- def __init__(self,label,width=600, height=300, toolbars="full",imagePath="", filePath="",upload_settings={},settings={},command=None ,event_handler=None,*args,**kwargs):
- uSettings=locals().copy()
- del uSettings["self"],uSettings["label"],uSettings["args"],uSettings["kwargs"]
- kwargs["widget"]=UEditorWidget(**uSettings)
- kwargs["label"]=label
- super(UEditorField,self).__init__( *args, **kwargs)
- def UpdateUploadPath(model_form,model_inst=None):
- """ 遍历model字段,如果是UEditorField则需要重新计算路径 """
- if model_inst is not None:
- try:
- for field in model_inst._meta.fields:
- if isinstance(field, ModelUEditorField):
- model_form.__getitem__(field.name).field.widget.recalc_path(model_inst)
- except:
- pass
- class UEditorModelForm(forms.ModelForm):
- def __init__(self,*args,**kwargs):
- super(UEditorModelForm,self).__init__(*args,**kwargs)
- try:
- if kwargs.has_key("instance"):
- UpdateUploadPath(self,kwargs["instance"])
- else:
- UpdateUploadPath(self,None)
- except Exception:
- pass
|