我尝试了一些东西,我似乎找不到解决我的问题的方法,我想检查表单image1的字段是否有新图像并删除cloudinary中的旧图像但它不是用我的代码删除任何东西,我在django shell中尝试过,一切正常。这是代码:
def edit_job(request, slug):
job = get_object_or_404(Job, user=request.user, slug=slug)
if request.method == 'POST':
form = AddJob(request.POST, request.FILES, instance=job)
if form.is_valid():
if form['image1']:
cloudinary.uploader.destroy(job.image1, invalidate = True)
form.save()
return redirect('view_job', slug=job.slug)
else:
form = AddJob(instance=job)
return render(request, 'jobs/edit_job.html', {'form': form, 'job': job})
答案 0 :(得分:0)
尝试使用public_id
属性从CloudinaryResource
对象中提取资源的public_id
。
答案 1 :(得分:0)
假设您的模型看起来像这样;
from cloudinary.models import CloudinaryField
class CustomModel(models.Model):
image = CloudinaryField('image',blank=True,null=True)
user = models.OneToOneField(User,blank=True, null=True, unique=True, verbose_name=_('User'))
在视图中;
import cloudinary.uploader
import cloudinary
import CustomModel.models
custommodel= CustomModel.objects.get(user=request.user)
cloudinary.uploader.destroy(custommodel.image.public_id,invalidate=True)
您可能无法删除照片,因为您没有将public_id传递给cloudinary。 public_id 是CloudinaryField中的一个属性。