I would like to save the downloaded images in separate folders. For example, custom photos should be saved in / media / images / 4 /
Here is the function and model and views that I came across:
Model:
def get_uplaod_file_name(user,filename):
return 'photos/%s/%s_%s' % str(user.id), (str(time()).replace('.','_'), filename)
class UserPic(models.Model):
user = models.ForeignKey(User, unique=False)
picfile = ImageWithThumbsField(upload_to= get_uplaod_file_name, sizes=((200,200),(1200,1200)))
caption = models.CharField(max_length=200 , blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
@models.permalink
def get_absolute_url(self):
return ('view_pirate', None, {'user': self.account.user})
def __unicode__(self):
return unicode(self.picfile.name)
Views:
@login_required
def upload(request):
thisuser =User.objects.get(username = request.user.username)
if request.method == 'POST':
picform = PicForm(request.POST, request.FILES)
if picform.is_valid():
newpic = UserPic(picfile = request.FILES['picfile'])
newpic = picform.save(commit=False)
newpic.user_id = request.user.id
newpic.save()
message = "file %s is uploaded" % newpic
else:
picform = PicForm()
args= {}
args['picform'] = picform
return render_to_response('userpics/upload.html',args,
context_instance=RequestContext(request))
However, after many tricks, get_uplaod_file_nameit still doesn't work. I get errors like:
TypeError at /pics/upload/
not enough arguments for format string
Appreciate your help to solve this problem.
source
share