我正在使用 django 和 jquery 进行图像上传。首先我们使用上传器上传一张图片,图片存储在图片tmpbg
字段中。然后,如果我们单击保存按钮,tmpbg
则会将其移动到背景图像字段。这里我需要的是我想删除背景图像字段路径中的孤立图像文件。
这是代码
模型.py:
class BackgroundModel(models.Model):
user = models.OneToOneField(User)
background = models.ImageField(upload_to='backgrounds', null=True, blank=True)
tmpbg = models.ImageField(upload_to='backgrounds', null=True, blank=True)
class BackgroundModelForm(ModelForm):
class Meta:
model = BackgroundModel
exclude = ('user', 'background')
Views.py(删除路径中图片文件的代码):
try:
bg = BackgroundModel.objects.get(user=request.user)
except BackgroundModel.DoesNotExist:
pass
else:
if bg.background != '':
image_path = os.path.join(settings.MEDIA_ROOT, str(bg.background))
try:
os.unlink(image_path)
bg.BackgroundModel.delete()
except:
pass
bg.background = bg.tmpbg
return HttpResponse("")
但孤立的图像文件不会被删除。我犯了什么错误?
更新:
这条线有问题
bg.background=bg.tmpbg
当我在 shell 模式下检查时。它没有显示。
>>> g.background
<ImageFieldFile: None>
但是tmpbg中有一个图片文件
>>> g.background
<ImageFieldFile: backgrounds/ijkl.jpg>
那么,如何从一个图像域复制到另一个域?
image_path 之间的代码是正确的!