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 -~----------~----~----~----~------~----~------~--~---