如何避免在预保存 Django 中进行模型编辑
How to avoid model edit in presave Django
我正在尝试立即保存在 Django 模型中,这会触发一个事件。更新此模型时,一次又一次地触发 start_event。如何只在第一次保存而不是更新时触发事件?
Image(models.Model):
file_name = models.CharField(max_length=200)
file_path = models.CharFiedld(max_length=500)
def save(self, *args, **kwargs):
start_event(self.file_path)
super(Image, self).save(*args, **kwargs)
首先使用此模型创建和更新。 创建
from models import Image
image = Image()
image.file_path = "path/to/file"
image.save()
活动完成后会使用更新
from models import Image
image = Image.objects.get(file_path='path/to/file')
image.file_name = "file/name"
image.save()
如何只在第一次保存时触发事件(start_event)而不是更新?
@Zev 你的信息帮了大忙!从 link Django - Overriding the Model.create() method? 找到了解决方案。
def save(self, *args, **kwargs):
if not self.pk: # Checking if the oject has no pk
start_event(self.file_path)
super(Image, self).save(*args, **kwargs)
我正在尝试立即保存在 Django 模型中,这会触发一个事件。更新此模型时,一次又一次地触发 start_event。如何只在第一次保存而不是更新时触发事件?
Image(models.Model):
file_name = models.CharField(max_length=200)
file_path = models.CharFiedld(max_length=500)
def save(self, *args, **kwargs):
start_event(self.file_path)
super(Image, self).save(*args, **kwargs)
首先使用此模型创建和更新。 创建
from models import Image
image = Image()
image.file_path = "path/to/file"
image.save()
活动完成后会使用更新
from models import Image
image = Image.objects.get(file_path='path/to/file')
image.file_name = "file/name"
image.save()
如何只在第一次保存时触发事件(start_event)而不是更新?
@Zev 你的信息帮了大忙!从 link Django - Overriding the Model.create() method? 找到了解决方案。
def save(self, *args, **kwargs):
if not self.pk: # Checking if the oject has no pk
start_event(self.file_path)
super(Image, self).save(*args, **kwargs)