在添加新图像(Django)之前,如何检查图像是否存在并将其删除

在添加新图像(Django)之前,如何检查图像是否存在并将其删除,django,django-views,Django,Django Views,我有一个帐户配置文件的视图。我希望用户能够在添加图像后编辑图像。我有编辑代码。用户编辑图像后,会将该图像添加到数据库中,但不会删除以前的图像 所以问题是,我如何做到以下几点: 检查图像是否存在 如果它确实删除了它 添加新图像 下面是我的观点,欢迎任何建议 @login_required def profile_img_edit(request, username, id): '''Edit a Profile Image''' messages.success(request, "You

我有一个帐户配置文件的视图。我希望用户能够在添加图像后编辑图像。我有编辑代码。用户编辑图像后,会将该图像添加到数据库中,但不会删除以前的图像

所以问题是,我如何做到以下几点:

检查图像是否存在 如果它确实删除了它 添加新图像

下面是我的观点,欢迎任何建议

@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))

只需更新数据库中的旧配置文件,而不是添加新的配置文件\u img实例:

ProfileImg.objects.filter(user=user).update(img_path='new_image_path')

不确定您是否已经这样做了,但您应该使用ForeignKey将您的ProfileImg模型连接到您的用户模型

您实际上是在数据库中存储图像,还是在存储图像文件的路径?ImageField存储路径。此外,您可以将此功能称为“非破坏性编辑”。风靡一时。:)这样做的目的是在服务器上保留映像,以防万一。但是要从数据库中删除记录,我的意思是从数据库中删除。删除它的记录。它可以留在服务器上,这很好。只要将它的记录从db.nice中删除,实际上就简单多了!只需在你的查询中使用更新方法(修改答案以反映)@Dave Merwin刚刚添加了一个新答案,请让我知道这是否适用于你。哦,太棒了。非常感谢!