在保存模型之前,我会重新调整图片大小.但是,如何检查是否添加了新图片或更新了描述,以便每次保存模型时都可以跳过重新缩放?
class Model(model.Model):
image=models.ImageField(upload_to='folder')
thumb=models.ImageField(upload_to='folder')
description=models.CharField()
def save(self, *args, **kwargs):
if self.image:
small=rescale_image(self.image,width=100,height=100)
self.image_small=SimpleUploadedFile(name,small_pic)
super(Model, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我想仅在新图像加载或图像更新时重新缩放,但在更新描述时不重新缩放.
我最初的问题是我试图将当前用户附加到新条目,所以我重写save_model下面的方法admin.ModelAdmin来执行
def save_model(self, request, obj, form, change):
obj.submit_usr = request.user
super().save_model(request, obj, form, change)
Run Code Online (Sandbox Code Playgroud)
当我尝试在数据库中创建新对象或新条目时,这非常有用,但是当我尝试编辑现有对象时,它仍然会创建一个新条目
我的模型看起来像(我取出了所有设置以避免这里混乱)
class AppUser(models.Model):
app_name = model.CharField()
submit_usr = models.ForeignKey()
submit_date = model.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
我知道changearg 指示现有条目是否有更改,但我仍然没有办法告诉 Django 我只想修改当前条目而不是创建新条目。
有什么想法如何实现这一目标吗?