Python Django'的分块上传;s模型的现场实现
技术问题:实现这样一个模型字段,它可以分块上传文件 详细信息:Python Django'的分块上传;s模型的现场实现,python,django,jquery-file-upload,Python,Django,Jquery File Upload,技术问题:实现这样一个模型字段,它可以分块上传文件 详细信息: 我知道,而且我 我打算用它 我不理解Django的架构: SomeModelField类具有formfield函数,我们可以在其中定义 “form_class”,指向SomeFormField 定义的SomeFormField具有属性widget,该属性可能包含SomeWidget SomeWidget可以有媒体类,该类可以有js变量,该变量包含链接脚本的元组 py,指向某个视图函数 视图功能 根据我目前的理解,假设以下来源(
- SomeModelField类具有formfield函数,我们可以在其中定义 “form_class”,指向SomeFormField
- 定义的SomeFormField具有属性widget,该属性可能包含SomeWidget
- SomeWidget可以有媒体类,该类可以有js变量,该变量包含链接脚本的元组
- py,指向某个视图函数
- 视图功能
根据我目前的理解,假设以下来源(不完整):
class ChunkedFileField(models.FileField):
def __init__(self, *args, **kwargs):
super(ChunkedFileField, self).__init__(*args, **kwargs)
description = "Chunked file"
__metaclass__ = models.SubfieldBase
def __init__(self, *args, **kwargs):
kwargs['max_length'] = len(UPLOAD_TO) + 1 + FILE_NAME_MAX_LENGTH
super(ChunkedFileField, self).__init__(*args, **kwargs)
def formfield(self, form_class=None, choices_form_class=None, **kwargs):
defaults = {'form_class': ChunkedFileFormField}
defaults.update(kwargs)
return super(ChunkedFileField, self).formfield(**defaults)
class ChunkedFileFormField(forms.FileField):
widget = ChunkedFileUploadWidget
def __init__(self, *args, **kwargs):
print 'ChunkedUploadFileField'
super(ChunkedFileFormField, self).__init__(*args, **kwargs)
class ChunkedFileField(models.FileField):
def __init__(self, *args, **kwargs):
super(ChunkedFileField, self).__init__(*args, **kwargs)
description = "Chunked file"
__metaclass__ = models.SubfieldBase
def __init__(self, *args, **kwargs):
kwargs['max_length'] = len(UPLOAD_TO) + 1 + FILE_NAME_MAX_LENGTH
super(ChunkedFileField, self).__init__(*args, **kwargs)
def formfield(self, form_class=None, choices_form_class=None, **kwargs):
defaults = {'form_class': ChunkedFileFormField}
defaults.update(kwargs)
return super(ChunkedFileField, self).formfield(**defaults)
class ChunkedFileFormField(forms.FileField):
widget = ChunkedFileUploadWidget
def __init__(self, *args, **kwargs):
print 'ChunkedUploadFileField'
super(ChunkedFileFormField, self).__init__(*args, **kwargs)
class ChunkedFileUploadWidget(ClearableFileInput):
def __init__(self, attrs=None):
super(ChunkedFileUploadWidget, self).__init__(attrs)
self.attrs['id'] = 'chunked_upload'
class Media:
js = (
'js/cu.js',
'js/jquery.js',
'js/jquery.ui.widget.js',
'js/jquery.iframe-transport.js',
'js/jquery.fileupload.js',
'js/spark-md5.js',
'js/ksb_django_fields.js',
)
问题: 我在为模型字段构建分块上传的方法上正确吗 我不明白,我怎样才能解决这种情况: 如果表单包含一组字段,其中一个是我的ChunkedFileFormField,那么表单的POST请求应该只发生一次,但是对于我的分块字段,POST请求应该针对每个分块部分发生 如何解决这个问题?任何想法或你的实现经验都将是辉煌的 注意:如果可能的话,可以使用文章链接、代码示例或git源代码参考