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