Re: Upload new file to the uploaded file path

2015-08-08 Thread Robin Lery
It works perfectly! I am using it to upload in s3, and even for s3 it works
as it is supposed to. I am really grateful to you.

Thank you.

On Wed, Aug 5, 2015 at 4:37 PM, 'Tom Evans' via Django users <
django-users@googlegroups.com> wrote:

> On Tue, Aug 4, 2015 at 9:45 PM, Robin Lery  wrote:
> > I have a model for Video:
> >
> > class Video(models.Model):
> > title = models.CharField(max_length=75)
> > pubdate = models.DateTimeField(default=timezone.now)
> > original_video = models.FileField(upload_to=get_upload_file_name)
> > mp4_720 = models.FileField(upload_to=get_upload_file_name,blank=True,
> > null=True)
> > converted = models.BooleanField(default=False)
> >
> > And this is the view:
> >
> > def upload_video(request):
> > if request.POST:
> > form = VideoForm(request.POST, request.FILES)
> > if form.is_valid():
> > video = form.save(commit=False)
> > video.save()
> > convert_video.delay(video.id)
> > return HttpResponseRedirect('/')
> >
> > Lastly the tasks.py:
> >
> > def get_upload_file_name(video):
> > name = video.title
> > name = name+'.mp4'
> > return name
> >
> > from pyvid.settings import MEDIA_ROOT
> >
> > @app.task
> > def convert_video(video_id):
> > video = Video.objects.get(id=video_id)
> > video_path = str(MEDIA_ROOT)+'/'+str(video.original_video)
> > convert_video_name = get_upload_file_name(video)
> > cmd = 'ffmpeg -i %s -codec:v libx264 -profile:v baseline -preset slow
> > -b:v 250k -maxrate 250k -bufsize 500k -vf scale=-1:360 -threads 0
> -codec:a
> > libfdk_aac -movflags +faststart %s.mp4' % (video_path,
> convert_video_name)
> > subprocess.call(
> > cmd,
> > shell=True
> > )
> >
> > video.mp4_720 = convert_video_name
> > video.converted = True
> > video.save()
> >
> > The problem is, even though video.mp4_720 is directed to
> > upload_to=get_upload_file_name, its just taking the value of
> > convert_video_name file path (which is in the base directory of the
> project)
> > but not to the path applied.
> >
> > How do I upload the new converted file it to the uploaded path?
> >
>
> You asked this about 3 weeks ago as well (and replied to that email
> today), did this approach not work?:
>
> This is explained in the docs for FileField, you need to create a
> django.core.files.File subclass, and save() it on the FieldFile object
> that is returned when you access the FileField field on your model
> instance.
>
> Eg:
>
> from django.core.files import File
> fp = open('/path/to/file')
> myfile = File(fp)
> my_obj.mp4_720.save(name="", content=myfile)
>
>
> https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.fields.files.FieldFile.save
>
> Cheers
>
> Tom
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/CAFHbX1%2BxUVC0vnV2wctro46ZOfWrF53BjOj1odQdzg92SDvL0Q%40mail.gmail.com
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2B4-nGoaWkfqb3M2jQzY6OnCiSwicbStmN1f0PZ8u%3D-nQjpSuA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: Upload new file to the uploaded file path

2015-08-05 Thread 'Tom Evans' via Django users
On Tue, Aug 4, 2015 at 9:45 PM, Robin Lery  wrote:
> I have a model for Video:
>
> class Video(models.Model):
> title = models.CharField(max_length=75)
> pubdate = models.DateTimeField(default=timezone.now)
> original_video = models.FileField(upload_to=get_upload_file_name)
> mp4_720 = models.FileField(upload_to=get_upload_file_name,blank=True,
> null=True)
> converted = models.BooleanField(default=False)
>
> And this is the view:
>
> def upload_video(request):
> if request.POST:
> form = VideoForm(request.POST, request.FILES)
> if form.is_valid():
> video = form.save(commit=False)
> video.save()
> convert_video.delay(video.id)
> return HttpResponseRedirect('/')
>
> Lastly the tasks.py:
>
> def get_upload_file_name(video):
> name = video.title
> name = name+'.mp4'
> return name
>
> from pyvid.settings import MEDIA_ROOT
>
> @app.task
> def convert_video(video_id):
> video = Video.objects.get(id=video_id)
> video_path = str(MEDIA_ROOT)+'/'+str(video.original_video)
> convert_video_name = get_upload_file_name(video)
> cmd = 'ffmpeg -i %s -codec:v libx264 -profile:v baseline -preset slow
> -b:v 250k -maxrate 250k -bufsize 500k -vf scale=-1:360 -threads 0 -codec:a
> libfdk_aac -movflags +faststart %s.mp4' % (video_path, convert_video_name)
> subprocess.call(
> cmd,
> shell=True
> )
>
> video.mp4_720 = convert_video_name
> video.converted = True
> video.save()
>
> The problem is, even though video.mp4_720 is directed to
> upload_to=get_upload_file_name, its just taking the value of
> convert_video_name file path (which is in the base directory of the project)
> but not to the path applied.
>
> How do I upload the new converted file it to the uploaded path?
>

You asked this about 3 weeks ago as well (and replied to that email
today), did this approach not work?:

This is explained in the docs for FileField, you need to create a
django.core.files.File subclass, and save() it on the FieldFile object
that is returned when you access the FileField field on your model
instance.

Eg:

from django.core.files import File
fp = open('/path/to/file')
myfile = File(fp)
my_obj.mp4_720.save(name="", content=myfile)

https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.fields.files.FieldFile.save

Cheers

Tom

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAFHbX1%2BxUVC0vnV2wctro46ZOfWrF53BjOj1odQdzg92SDvL0Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Upload new file to the uploaded file path

2015-08-04 Thread Robin Lery
I have a model for Video:

class Video(models.Model):
title = models.CharField(max_length=75)
pubdate = models.DateTimeField(default=timezone.now)
original_video = models.FileField(upload_to=get_upload_file_name)
mp4_720 = models.FileField(upload_to=get_upload_file_name,blank=True,
null=True)
converted = models.BooleanField(default=False)

And this is the view:

def upload_video(request):
if request.POST:
form = VideoForm(request.POST, request.FILES)
if form.is_valid():
video = form.save(commit=False)
video.save()
convert_video.delay(video.id)
return HttpResponseRedirect('/')

Lastly the tasks.py:

def get_upload_file_name(video):
name = video.title
name = name+'.mp4'
return name

from pyvid.settings import MEDIA_ROOT

@app.task
def convert_video(video_id):
video = Video.objects.get(id=video_id)
video_path = str(MEDIA_ROOT)+'/'+str(video.original_video)
convert_video_name = get_upload_file_name(video)
cmd = 'ffmpeg -i %s -codec:v libx264 -profile:v baseline -preset slow
-b:v 250k -maxrate 250k -bufsize 500k -vf scale=-1:360 -threads 0 -codec:a
libfdk_aac -movflags +faststart %s.mp4' % (video_path, convert_video_name)
subprocess.call(
cmd,
shell=True
)

video.mp4_720 = convert_video_name
video.converted = True
video.save()

The problem is, even though video.mp4_720 is directed to
upload_to=get_upload_file_name,
its just taking the value of convert_video_name file path (which is in the
base directory of the project) but not to the path applied.

How do I upload the new converted file it to the uploaded path?

Thank you

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2B4-nGp8_TW6JdW4D7iKOgAYE9zOFzc1bE-1kUjPj-p9e1somA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.