【发布时间】:2011-07-29 14:48:06
【问题描述】:
我有一个帐户资料的视图。我希望用户在添加图像后能够编辑图像。我有编辑代码。一旦用户编辑了一张图片,它就会将该图片添加到数据库中,但不会删除之前的图片。
所以问题是,我该怎么做:
检查图像是否存在 如果确实删除它 添加新图片
我的观点如下,欢迎提出建议。
@login_required
def profile_img_edit(request, username, id):
'''Edit a Profile Image'''
messages.success(request, "Your changes were saved!")
user = get_object_or_404(User, username=username)
if request.user != user:
return permission_denied(request)
profile_img = get_object_or_404(ProfileImage, user=user, id=id)
if request.method == 'POST':
form = Profile_ImageEditForm(request.POST, request.FILES, instance=profile_img)
if form.is_valid():
form.save()
return HttpResponseRedirect(
reverse('profile_img', kwargs={
'username': request.user.username,
'id': profile_img.id}))
else:
form = Profile_ImageEditForm()
return render_to_response('accounts/profile_img_edit.html', {
'form':form,
'object':profile_img
}, context_instance=RequestContext(request))
【问题讨论】:
-
您实际上是将图像存储在数据库中,还是存储图像文件的路径? ImageField 存储路径。此外,您可以将此功能称为“非破坏性编辑”。风靡一时。 :)
-
这个想法是将图像实际保存在服务器中,以防万一。但是要从数据库中删除记录。
标签: django django-views