Hi, I am trying to delete an Account that delete in cascade others objects, 
but I have a post_delete in Car model that create a Log that have relation 
with this Account.
The django apparently can not handle the error. How to solve this?

Models:

class Account(models.Model):
    pass


class Car(models.Model):
    account = models.ForeignKey('Account', on_delete=models.CASCADE)


class Log(models.Model):
    account = models.ForeignKey('Account', on_delete=models.CASCADE)


class CarLog(Log):
    car = models.ForeignKey('Car', null=True, blank=True, 
on_delete=models.SET_NULL)

    
@receiver(post_delete, sender=Car):
def create_car_log(sender, instance, **kwargs):
    try:
        CarLog.objects.create(
            account=instance.account,
        )
    except:
        pass
 

Shell:


>>> account = Account.objects.create()
>>> car = Car.objects.create(account=account)
>>> CarLog.objects.create(account=account, car=car)
>>> account.delete()  # when delete car will try to create a log related 
with that account, but...

Error:

insert or update on table "myapp_log" violates foreign key constraint 
"myapp_log_account_id_6ea8d7a6_fk_myapp_account_id"
DETAIL:  Key (account_id)=(11) is not present in table "myapp_account".

It's happening this error rather than the exception.





-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/30775c1b-e7e8-439d-9a6e-7cef8667c6ab%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to