django - ModelForm: upload file in chunks in custom path -


i have following situation:

  • models.py

    class shapefile(models.model):     name = models.slugfield()     file = models.filefield(upload_to=get_upload_path)  def get_upload_path(instance, filename):     return os.path.join("my","custom","path",filename) 
  • views.py

    def shapeing(request):     if request.method == 'post':         form = uploadform(request.post, request.files)         if form.is_valid():             form.save() 

in way, file uploaded automatically chunked? if not chunk , suggested in docs, i've tried following

  • models.py

    from django.core.files.storage import default_storage  class shapefile(models.model):     name = models.slugfield()     file = models.filefield(upload_to=get_upload_path)  def get_upload_path_2(filename):    return os.path.join(default_storage.path(''),"my","custom",        "path","%s" % filename) 
  • views.py

    from os import makedirs form os.path import dirname django.core.files.storage import default_storage  def shapeing(request):     if request.method == 'post':         form = uploadform(request.post, request.files)         if form.is_valid():              # split uploaded file chunks             filename = request.files['file']             filepath = get_upload_path_2(filename)             handle_uploaded_file(filename, filepath) # uploads file              form.save() # uploads file again!!!  def handle_uploaded_file(filename, filepath):     makedirs(dirname(filepath))     open(filepath, 'wb+') destination:         chunk in filename.chunks():             destination.write(chunk) 

it works the file stored twice names compliant django docs, example myfile.zip , *myfile_1.zip*. 1 stored save() i'm not sure if chunked or not. please explain me if chunking automatic in modelform , maybe give me working example? have redefine save() method in order store "name" field , chunk "file" field? thanks.


Comments

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -