Thank you for you reply. Now I have slove the problem. But the
solution is very strange.
In fact, there is a clean function in my update form, as following:
    def clean_user_avatar(self):
        if not self.cleaned_data["user_avatar"]:
            raise forms.ValidationError("Image Path is in none")
After I remove it, then it works. Maybe there is some problem in this
function, but I cannot figure it out.
Anyway, thanks for your reply in advance. :)

On 4月1日, 下午11时39分, Karen Tracey <kmtra...@gmail.com> wrote:
> 2009/4/1 TTear1943 <1943....@gmail.com>
>
>
>
> > I seems it doesnot work when update an ImageField.
>
> Certainly ImageFields can be updated.
>
> You've omitted from the code you posted what exactly is done by the function
> user.handle_upload_user_avatar(), which is my first guess as to where the
> problem is.  If you want help solving the problem, you will need to include
> more of what your code is doing (dpaste.com is likely a better place for
> than inline in email for any large block of code) , and also it would help
> if you were very specific about the error messages, tracebacks, or whatever
> you are encountering.
>
> For example you say "the avatar cannot be uploaded to AVATAR_TEMP_DIR".  Why
> not?  What exactly happens?
>
> You also appear to be drawing conclusions from what you are seeing, when you
> state things like: "It seems that, after create the user. the
> AVATAR_TEMP_DIR set to upload_to is lost, so the program doesn't know where
> to upload the file."  I don't believe this conclusion is valid, but I'm not
> sure what you saw that made you come to that conclusion, so I'm having a
> hard time guessing what might be the real problem.
>
> Karen
>
>
>
> > On 4月1日, 下午5时37分, TTear1943 <1943....@gmail.com> wrote:
> > > Hi, I encounter a problem.
> > > In my user models there is an atrrbution: user.avatar = ImageField
> > > ('avatar', upload_to=AVATAR_TEMP_DIR, blank=True, null=True)
> > > then i use a modelform as an create user form. And the avatar is
> > > uploaded corrcet. Which upload to AVATAR_TEMP_DIR, then I move the
> > > avatar into AVATAR_ORIGINAL_PATH and make user.avatar._name as
> > > AVATAR_ORIGINAL_PATH % user.id
> > > After this, then I try to change an avatar. So I user another
> > > modelform to update. however, this time the avatar cannot be uploaded
> > > to AVATAR_TEMP_DIR, so I also cannot move the avatar to
> > > AVATAR_ORIGINAL_PATH.
> > > It seems that, after create the user. the AVATAR_TEMP_DIR set to
> > > upload_to is lost, so the program doesn't know where to upload the
> > > file.
> > > Can anyone help me to solve this problem? Thank you very much.
>
> > > class UserForm(forms.ModelForm):
> > >     class Meta:
> > >         model = User
> > >         fields = ('name', 'user_avatar', 'description')
>
> > > class UserAvatarForm(forms.ModelForm):
> > >     class Meta:
> > >         model = User
> > >         fields = ('user_avatar')
>
> > > @login_required
> > > def user_create(request):
> > >     if request.method == 'POST':
> > >         form = UserForm(request.POST, request.FILES)
> > >         if form.is_valid():
> > >             user = form.save(commit=False)
> > >             user.save()
> > >             user.handle_upload_user_avatar() # move image from
> > > AVATAR_TEMP_DIR to AVATAR_ORIGINAL_PATH
> > >             user.save()
> > >             return HttpResponseRedirect(user.url)
>
> > >     else:
> > >         form = UserForm()
>
> > >     return render_to_response('user/user_create.html', locals())
>
> > > @login_required
> > > def settings_user_avatar(request, user_name):
> > >     user = get_object_or_404(User, name=user_name)
> > >     if request.method == 'POST':
> > >         form = UserAvatarForm(request.POST, request.FILES,
> > > instance=user)
> > >         if form.is_valid():
> > >             user = form.save()
> > >             user.handle_upload_user_avatar() # move image from
> > > AVATAR_TEMP_DIR to AVATAR_ORIGINAL_PATH
> > >             user.save()
> > >             return HttpResponseRedirect(user.url)
> > >     else:
> > >         form = UserAvatarForm(instance=user)
>
> > >     return render_to_response('user/user_avatar.html', locals())
>
>
--~--~---------~--~----~------------~-------~--~----~
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