Cancel saving model when using pre_save in django
django, python, signals
Solution
See my another answer: https://stackoverflow.com/a/32431937/2544762
This case is normal, if we just want to prevent the save, throw an exception:
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')
Problem
I have a model: ``` class A(models.Model): number = models.IntegerField() ``` But when I call A.save(), I want to ensure that number is a prime (or other conditions), or the save instruction should be cancelled. So how can I cancel the save instruction in the pre_save signal receiver? ``` @receiver(pre_save, sender=A) def save_only_for_prime_number(sender, instance, *args, **kwargs): # how can I cancel the save here? ```