﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32660	Endless loop upon delete	kr	exec-life	"I have three models whereas one has a custom `__init__()` method:


{{{
class Foo(models.Model):
    my_foo = models.CharField(max_length=1000)


class Bar(models.Model):
    bar1 = models.CharField(max_length=1000, default="""")
    bar2 = models.BooleanField(default=False)
    foo = models.ForeignKey(Foo, on_delete=models.CASCADE)

    def __init__(self, *args, **kwargs):
        super(Bar, self).__init__(*args, **kwargs)
        print(""check"")
        self._original_bar1 = self.bar1
        self._original_bar2 = self.bar2


class Baz(models.Model):
    bar = models.ForeignKey(Bar, on_delete=models.CASCADE)
}}}


Creating a Foo object and a corresponding Bar object (via the admin interface) works fine.
**However, when I delete the Foo object, this results in an endless loop of the `__init__()` method.**

If I rewrite the models slightly as


{{{
from django.db import models


class Foo(models.Model):
    my_foo = models.CharField(max_length=1000)


class AbstractBar2(models.Model):
    bar2 = models.BooleanField(default=False)

    def __init__(self, *args, **kwargs):
        super(AbstractBar2, self).__init__(*args, **kwargs)
        print(""check"")
        self._original_bar2 = self.bar2

    class Meta:
        abstract = True


class AbstractBar1(models.Model):
    bar1 = models.CharField(max_length=1000, default="""")

    def __init__(self, *args, **kwargs):
        super(AbstractBar1, self).__init__(*args, **kwargs)
        print(""check"")
        self._original_bar1 = self.bar1

    class Meta:
        abstract = True


class Bar(AbstractBar1, AbstractBar2):
    foo = models.ForeignKey(Foo, on_delete=models.CASCADE)


class Baz(models.Model):
    bar = models.ForeignKey(Bar, on_delete=models.CASCADE)
}}}

it errors out on


{{{
Fatal Python error: _Py_CheckRecursiveCall: Cannot recover from stack overflow.
Python runtime state: initialized

Current thread 0x000035d0 (most recent call first):
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\fields\__init__.py"", line 807 in get_prep_value
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\fields\__init__.py"", line 1770 in get_prep_value
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\lookups.py"", line 76 in get_prep_lookup
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\lookups.py"", line 24 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\sql\query.py"", line 1165 in build_lookup
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\sql\query.py"", line 1319 in build_filter
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\sql\query.py"", line 1377 in _add_q
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\sql\query.py"", line 1358 in add_q
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 969 in _filter_or_exclude_inplace
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 962 in _filter_or_exclude
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 942 in filter
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\manager.py"", line 85 in manager_method
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 623 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 26 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 513 in from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 71 in __iter__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 1308 in _fetch_all
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 269 in __len__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 425 in get
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 635 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 14 in __init__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 24 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 513 in from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 71 in __iter__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 1308 in _fetch_all
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 269 in __len__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 425 in get
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 635 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 26 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 513 in from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 71 in __iter__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 1308 in _fetch_all
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 269 in __len__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 425 in get
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 635 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 14 in __init__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 24 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 513 in from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 71 in __iter__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 1308 in _fetch_all
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 269 in __len__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 425 in get
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 635 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 26 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 513 in from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 71 in __iter__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 1308 in _fetch_all
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 269 in __len__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 425 in get
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 635 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 14 in __init__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 24 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 513 in from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 71 in __iter__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 1308 in _fetch_all
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 269 in __len__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 425 in get
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 635 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 26 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 513 in from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 71 in __iter__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 1308 in _fetch_all
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 269 in __len__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 425 in get
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 635 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 14 in __init__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 24 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 513 in from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 71 in __iter__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 1308 in _fetch_all
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 269 in __len__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 425 in get
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 635 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 26 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 513 in from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 71 in __iter__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 1308 in _fetch_all
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 269 in __len__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 425 in get
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 635 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 14 in __init__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 24 in __init__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 513 in from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 71 in __iter__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 1308 in _fetch_all
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 269 in __len__
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query.py"", line 425 in get
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\base.py"", line 635 in refresh_from_db
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\db\models\query_utils.py"", line 149 in __get__
  File ""C:\Users\name\PycharmProjects\djangoTest\foobar\models.py"", line 26 in __init__
  ...

Thread 0x00000a60 (most recent call first):
  File ""C:\Users\name\AppData\Local\Programs\Python\Python39\lib\selectors.py"", line 315 in _select
  File ""C:\Users\name\AppData\Local\Programs\Python\Python39\lib\selectors.py"", line 324 in select
  File ""C:\Users\name\AppData\Local\Programs\Python\Python39\lib\socketserver.py"", line 232 in serve_forever
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\core\servers\basehttp.py"", line 216 in run
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\core\management\commands\runserver.py"", line 139 in inner_run
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\utils\autoreload.py"", line 53 in wrapper
  File ""C:\Users\name\AppData\Local\Programs\Python\Python39\lib\threading.py"", line 888 in run
  File ""C:\Users\name\AppData\Local\Programs\Python\Python39\lib\threading.py"", line 950 in _bootstrap_inner
  File ""C:\Users\name\AppData\Local\Programs\Python\Python39\lib\threading.py"", line 908 in _bootstrap

Thread 0x00000c7c (most recent call first):
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\utils\autoreload.py"", line 374 in tick
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\utils\autoreload.py"", line 324 in run_loop
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\utils\autoreload.py"", line 318 in run
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\utils\autoreload.py"", line 603 in start_django
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\utils\autoreload.py"", line 618 in run_with_reloader
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\core\management\commands\runserver.py"", line 103 in run
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\core\management\commands\runserver.py"", line 96 in handle
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\core\management\base.py"", line 371 in execute
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\core\management\commands\runserver.py"", line 61 in execute
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\core\management\base.py"", line 330 in run_from_argv
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\core\management\__init__.py"", line 395 in execute
  File ""C:\Users\name\PycharmProjects\global39\djangoTest\lib\site-packages\django\core\management\__init__.py"", line 401 in execute_from_command_line
  File ""C:\Users\name\PycharmProjects\djangoTest\manage.py"", line 18 in main
  File ""C:\Users\name\PycharmProjects\djangoTest\manage.py"", line 22 in <module>

Process finished with exit code -1
}}}
"	Bug	closed	Database layer (models, ORM)	3.1	Normal	invalid			Unreviewed	0	0	0	0	0	0
