2010-07-05 15 views
6

Estoy tan cerca ... pero no veo la conexión desde la vista de carga al modelo. Cuando uso la devolución de llamada en el modelo FileField, la carga funciona, pero no estoy seguro de dónde se realiza la copia del archivo real. El objetivo es asegurarse de que chunking esté sucediendo, pero la acción de copia de archivos parece estar oculta en alguna parte.Subidas de archivos Django y modelo FileField

Esto es lo que tengo:

Modelo:

def get_media_upload_dir(instance, filename): 
    user_id = instance.user.id 
    upload_dir = "%s/%d/%s" % (settings.MEDIA_ROOT, user_id, filename) 
    print "Upload dir set to: %s" % upload_dir 
    return upload_dir 

class MediaFile(models.Model): 
    media_file  = models.FileField(upload_to=get_media_upload_dir) 
    download_count = models.PositiveIntegerField(default=0) 

Vista:

def file_upload(request, course_id):  
    if request.method == 'POST': 
     form = FileUploadForm(request.POST, request.FILES) 
     if form.is_valid(): 
      uploaded = form.cleaned_data['file_upload'] 
      mediaFile = MediaFile(media_file=uploaded, 
           owner=request.user.profile, 
           creator=request.user.profile) 
      mediaFile.save() 

      return HttpResponseRedirect('/course/%s/' % course_id) 
    else: 
     form = FileUploadForm() 
    return render_to_response('course/file_upload.html', {'form':form,'course':course}, context_instance=RequestContext(request)) 
+2

¿Has leído http://docs.djangoproject.com/en/dev/topics/http/file-uploads/?from=olddocs#handling-uploaded-files? Parece ser lo que estás buscando. No quiero responder porque no estoy seguro de lo que realmente está preguntando. – Bartek

Respuesta

Cuestiones relacionadas