The second message posted by shows that the POST request handler didnt
find key 'files' in its Multivalue Dictionary.Its I think the keyword
'file' has been deprecated from later versions of Django.So for
uploading the file, just make an instance of the form class like,
form = ImageForm(request.POST, request.FILES)
Then after checking if its valid save it.
Be sure to configure your 'MEDIA_ROOT' directory in 'settings.py' to
the path were you want to upload the files.
Also enable multipart/form data in your form tag of your templateas
mentioned by Roboto.
Good Luck!
Avinash

On Jun 24, 2:53 am, Roboto <robc...@gmail.com> wrote:
> {% if form.is_multipart %}
>     <form enctype="multipart/form-data" method="post" action="/foo/">
> {% else %}
>     <form method="post" action="/foo/">
> {% endif %}
> {{ form }}
> </form>
>
> http://docs.djangoproject.com/en/dev/ref/forms/api/#binding-uploaded-...
>
> On Jun 15, 12:59 am, Oleg Oltar <oltarase...@gmail.com> wrote:
>
> > I made a mistake in view.py.
> > Corrected version is
> > def handleUploadedFile(file):
> >     destination = open('usermedia/new.jpg', 'wb+')
> >     for chunk in file.chunks():
> >         destination.write(chunk)
> >     destination.close()
> >     return destination
>
> > def user_profile(request, profile_name):
> >     owner = get_object_or_404(User, username = profile_name)
> >     ownersProfile =get_object_or_404(UserProfile, user = owner)
> >     form = ProfileEdit(request.POST)
> >     if request.method == 'POST':
>
> >         if form.is_valid():
> >             ownersProfile.about = form.cleaned_data['about']
> >             ownersProfile.avatar = handleUploadedFile(request.FILES['file'])
> >             ownersProfile.save()
> >             return HttpResponseRedirect("/")
> >         else:
> >             form = ProfileEdit()
>
> > Also changed a little bit template:
> > <form method="post" action="./{{owner.username}}">
> >   {{ form.as_p }}
> >   <input type="submit" value="Upload" />
> > </form>
>
> > But I am getting:
> > MultiValueDictKeyError at /account/profile/test
>
> > "Key 'file' not found in <MultiValueDict: {}>"
>
> > :(
>
> > On Mon, Jun 15, 2009 at 6:54 AM, Oleg Oltar<oltarase...@gmail.com> wrote:
> > > Hi!
>
> > > I know that the problem probably was discussed many times already, but
> > > I really can't make it working.
>
> > > I read the documentation and prepared the following code:
>
> > > model:
>
> > > class UserProfile(models.Model):
> > >    """
> > >    User profile model, cintains a Foreign Key, which links it to the
> > >    user profile.
> > >    """
> > >    about = models.TextField(blank=True)
> > >    user = models.ForeignKey(User, unique=True)
> > >    ranking = models.IntegerField(default = 1)
> > >    avatar = models.ImageField(upload_to="usermedia", default = 
> > > 'images/js.jpg')
>
> > >    def __unicode__(self):
> > >        return u"%s profile" %self.user
>
> > > form:
>
> > > class ProfileEdit(forms.Form):
> > >    about = forms.CharField(label = 'About', max_length = 1000, 
> > > required=False)
> > >    avtar = forms.ImageField()
>
> > > view:
> > > def handleUploadedFile(file):
> > >    destination = open('usermedia/new.jpg', 'wb+')
> > >    for chunk in file.chunks():
> > >        destination.write(chunk)
> > >    destination.close()
> > >    return True
>
> > > def user_profile(request, profile_name):
> > >    owner = get_object_or_404(User, username = profile_name)
> > >    ownersProfile =get_object_or_404(UserProfile, user = owner)
> > >    form = ProfileEdit(request.POST)
> > >    if request.method == 'POST':
> > >        form = ProfileEdit(request.POST, request.FILES)
> > >        if form.is_valid():
> > >            handleUploadedFile(request.FILES['file'])
> > >        else:
> > >            form = ProfileEdit()
>
> > >    data = RequestContext(request,
> > >                          {
> > >            'owner' : owner,
> > >            'ownersProfile' : ownersProfile,
> > >            'form' : form
> > >            }
> > >                          )
> > >    return render_to_response('registration/profile.html', data)
>
> > > And part of template:
>
> > > <form method="post" action=".">
> > >  {{ form.as_p }}
> > >  <input type="submit" value="Upload" />
> > > </form>
>
> > > After trying this code in browser I am getting a text field with
> > > browse button, so when I chose file to upload, and finally click
> > > upload I am getting 404 Error.
> > > Not sure what I might doing wrong.
> > > Please help
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to