I seems it doesnot work when update an ImageField.
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
-~----------~----~----~----~------~----~------~--~---