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))
¿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