def account(): form = UserUpdateForm() if form.validate_on_submit(): if form.picture.data: picture_file = save_picture(form.picture.data) current_user.image_field = picture_file current_user.username = form.username.data current_user.email = form.email.data db.session.commit() flash(f'Your account has been updated', 'success') return redirect(url_for('account')) elif request.method == 'GET': form.username.data = current_user.username form.email.data = current_user.email image_file = url_for('static', filename='profile_pics/' + current_user.image_field) return render_template('account.html', title='Account', \ image_file=image_file, form=form)
def update_profile(request): if request.method == 'POST': user_form = UserUpdateForm(data=request.POST, instance=request.user) user_profile_form = UserProfileForm(request.POST, request.FILES, instance=request.user.profile) if user_form.is_valid() and user_profile_form.is_valid(): user = user_form.save() user.refresh_from_db() user_profile_form.save(user=user) return redirect('index') else: try: profile = Profile.objects.get(pk=request.user.profile.id) except Profile.DoesNotExist: raise Http404('Invalid Profile') else: user_form = UserUpdateForm(instance=profile.user) user_profile_form = UserProfileForm(instance=profile) return render(request, 'blog/edit_profile.html', context={ 'user_form': user_form, 'user_profile_form': user_profile_form })
def register_profile(request): """ 用于展示目前登陆用户的信息,并且可以更新部分信息, 未完成 """ login_user = get_login_user(request) logging.info('用户: {}, IP: {}, 打开登陆用户信息编辑'.format(login_user, get_remote_ip(request))) if UserProfile.objects.filter(user=login_user): userprofile = UserProfile.objects.get(user=login_user) else: logging.warn('用户: {}, IP: {}, 登陆用户信息详情暂无, 即将生成'.format( login_user, get_remote_ip(request))) userprofile = UserProfile(user=login_user) userprofile.save() userform = UserUpdateForm({ 'email': login_user.email, 'website': userprofile.website }) if request.method == 'POST': logging.info('用户: {}, IP: {}, 用户信息变更提交'.format(login_user, get_remote_ip(request))) userform = UserUpdateForm(request.POST) if userform.is_valid(): logging.info('用户: {}, IP: {}, 用户信息变更提交有效'.format( login_user, get_remote_ip(request))) login_user.email = userform.cleaned_data['email'] login_user.save() userprofile.website = userform.cleaned_data['website'] picture = request.FILES.get('avator') if picture: logging.info('用户: {}, IP: {}, 用户信息变更照片提交有效'.format( login_user, get_remote_ip(request))) userprofile.picture = picture userprofile.save() context = { 'login_user': login_user, 'userprofile': userprofile, 'userform': userform } return render(request, 'blog/register_profile.html', context=context)
def profile(request): if request.method == 'POST': form = UserUpdateForm(request.POST, instance=request.user) if form.is_valid(): form.save() messages.success(request, 'Account Successfully Updated !') return redirect('blog:profile') else: form = UserUpdateForm(instance=request.user) return render(request, 'blog/update.html', {'form': form})
def profile_view(request): if request.method=='POST': u_form=UserUpdateForm(request.POST,instance=request.user) p_form=ProfileUpdateForm(request.POST,request.FILES,instance=request.user.profile) if u_form.is_valid() and p_form.is_valid(): u_form.save() p_form.save() messages.success(request,f'Your Account has been Updated Successfully !') return redirect(profile_view) else: u_form=UserUpdateForm(instance=request.user) p_form=ProfileUpdateForm(instance=request.user.profile) context={'u_form':u_form,'p_form':p_form} return render(request,'blog/profile.html',context)
def profile(request): if request.method == 'POST': user_form = UserUpdateForm(request.POST, instance=request.user) profile_form = ProfileUpdateForm(request.POST, request.FILES, instance=request.user.profile) if user_form.is_valid() and profile_form.is_valid(): user_form.save() profile_form.save() messages.success(request, 'Ваш профиль обновлен!') return redirect('blog-profile') else: user_form = UserUpdateForm(instance=request.user) profile_form = ProfileUpdateForm(instance=request.user.profile) context = {'user_form': user_form, 'profile_form': profile_form} return render(request, 'blog/profile.html', context)
def author_profile(request, username): author = get_object_or_404(User, username=username) u_form = UserUpdateForm(instance=author) p_form = ProfileUpdateForm(instance=author.authorprofile) if request.method == 'POST': u_form = UserUpdateForm(request.POST, instance=author) p_form = ProfileUpdateForm( request.POST, instance=author.authorprofile) if u_form.is_valid() and p_form.is_valid(): u_form.save() p_form.save() messages.success(request, f'Your profile has been updated.') return redirect('author-profile') context = { 'u_form': u_form, 'p_form': p_form, } return render(request, 'blog/author-profile.html', context)
def get_context_data(self, **kwargs): context = super(UserDisplay, self).get_context_data(**kwargs) context['form'] = UserUpdateForm() context['title'] = "Update Profile" return context