This works for you? Not for me! This error continues to ignore the 
exception.
Even using exception continues to show django.db.utils.IntegrityError

Em domingo, 24 de abril de 2016 00:52:46 UTC-3, Stephen Butler escreveu:
>
> Ahh, Postgres is the problem. When your exception is thrown then Postgres 
> aborts the rest of the transaction. That's how its transaction handling 
> works. Even though you ignore the exception in the myapp code, it will 
> still cause the transaction to abort when Django tries to call commit(). 
> When I was testing I was using sqlite, which behaves differently.
>
> See the note here: 
> https://docs.djangoproject.com/en/1.9/topics/db/transactions/#handling-exceptions-within-postgresql-transactions
>
> This works for me:
>
> @receiver(post_delete, sender=Car)
> def create_car_log(sender, instance, **kwargs):
>     sid = transaction.savepoint()
>     try:
>         CarLog.objects.create(
>             account=instance.account,
>         )
>         transaction.savepoint_commit(sid)
>     except:
>         transaction.savepoint_rollback(sid)
>
> What I don't get is that using a "with transaction.atomic()" inside the 
> try block should do the same thing. But it's not. Maybe someone else knows?
>
> On Sat, Apr 23, 2016 at 10:19 PM, Neto <[email protected] 
> <javascript:>> wrote:
>
>> Stephen, I am using Django 1.9.5, PostgreSQL 9.3
>> I do not know, maybe the order of the apps may be interfering in the way 
>> Django sorts the commands to be sent to the postgresql.
>>
>> INSTALLED_APPS = [
>>     'core',  # here: Account, Log
>>     'myapp',  # here: Car, CarLog
>>
>>
>> What is happening is that post_delete is trying to create a log for an 
>> account that does not exist. The exception doesn't works.
>> This seems to be a bug.
>>
>> Em sábado, 23 de abril de 2016 18:28:08 UTC-3, Stephen Butler escreveu:
>>>
>>> Sorry, I did miss that.
>>>
>>> I created a quick test project in 1.9 and ran your sample. It works fine 
>>> for me. The delete() returns that it deleted 4 objects: the Account, Car, 
>>> Log, and CarLog. There's something else in your project that is causing the 
>>> error.
>>>
>>> On Sat, Apr 23, 2016 at 3:42 PM, Neto <[email protected]> wrote:
>>>
>>>> Stephen, CarLog is inheriting Log.
>>>>
>>>>
>>>> Em sábado, 23 de abril de 2016 17:14:57 UTC-3, Stephen Butler escreveu:
>>>>>
>>>>> Look a little closer at the error message:
>>>>>
>>>>> 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.
>>>>>>
>>>>>
>>>>> The table is myapp_log, not myapp_carlog. The error isn't in the 
>>>>> post_delete signal you're showing up. Do you have a post_delete for 
>>>>> Account 
>>>>> objects?
>>>>>
>>>> -- 
>>>> 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/92e72312-5678-428b-ad7f-360ad911ceaa%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/django-users/92e72312-5678-428b-ad7f-360ad911ceaa%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> -- 
>> 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] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> 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/02b1ab5b-d7e3-4df2-9738-9c1636e931c5%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/django-users/02b1ab5b-d7e3-4df2-9738-9c1636e931c5%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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/9b6ded86-c084-4842-ab41-4f40624df0a6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to