在我的项目中,我正在使用github提供的ImageKit示例:click here
我希望能够更新图片文件,如果特定用户的图片已经存在(如头像),我不确定如何去做。我需要知道如何删除图片,保存新的并相应地更新数据库。任何例子都会得到真正的赞赏。
答案 0 :(得分:0)
要创建图像,我使用save_image方法。我不知道它是否与save方法不同。但就我而言,save_image方法对我来说很好。
要删除图像,只需获取该模型的实例并调用delete方法即可。它将删除数据库记录和图像(包括缩略图)。我需要提一下,ImageModel上的delete方法与普通模型上的方法不同。我注意到的不同之处在于,当您尝试批量删除Photo.objects.filter(owner = owner_id).delete()等图像时,结果将只删除数据库记录,同时保留文件。要完全删除ImageModel,您需要获取确切的实例并调用delete方法。在我的示例中,您需要遍历所有照片并逐个删除它们。
我认为ImageModel的设计方式不鼓励更新。因此,在您的情况下,如果您想要替换旧的头像,最好的方法是创建一个新的ImageModel实例,与用户建立关系,保存并删除原始头像。