gpt4 book ai didi

python - 在 django 中使用 pre_save 时取消保存模型

转载 作者:IT老高 更新时间:2023-10-28 20:46:39 41 4
gpt4 key购买 nike

我有一个模型:

class A(models.Model):
number = models.IntegerField()

但是当我调用 A.save() 时,我想确保该数字是质数(或其他条件),否则应该取消保存指令。

那么如何取消pre_save信号接收器中的save指令呢?

@receiver(pre_save, sender=A)
def save_only_for_prime_number(sender, instance, *args, **kwargs):
# how can I cancel the save here?

最佳答案

查看我的另一个答案:https://stackoverflow.com/a/32431937/2544762

这种情况是正常的,如果我们只是想阻止保存,抛出异常:

from django.db.models.signals import pre_save, post_save

@receiver(pre_save)
def pre_save_handler(sender, instance, *args, **kwargs):
# some case
if case_error:
raise Exception('OMG')

关于python - 在 django 中使用 pre_save 时取消保存模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23949709/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com