Skip to content

Instantly share code, notes, and snippets.

@smcalilly
Created May 3, 2023 16:41
Show Gist options
  • Save smcalilly/e4c198d81fbe3577ba858a44eeee712f to your computer and use it in GitHub Desktop.
Save smcalilly/e4c198d81fbe3577ba858a44eeee712f to your computer and use it in GitHub Desktop.

walking through django's Collector.delete() method and got the error at the end.

"GET /projects/85/ HTTP/1.1" 200 15681
"GET /static/images/favicon-32x32.png HTTP/1.1" 200 1149
> /app/asset_dashboard/views.py(332)get_context_data()
-> return super().get_context_data(**kwargs)
(Pdb) c
"GET /projects/phases/delete/126/ HTTP/1.1" 200 3619
> /app/asset_dashboard/views.py(332)get_context_data()
-> return super().get_context_data(**kwargs)
(Pdb) n
--Return--
> /app/asset_dashboard/views.py(332)get_context_data()->{'object': <Phase: plann...- 2023 -  new>, 'phase': <Phase: plann...- 2023 -  new>, 'view': <asset_dashbo...x7fbf4842a100>}
-> return super().get_context_data(**kwargs)
(Pdb) n
> /app/asset_dashboard/views.py(336)get_success_url()
-> messages.success(self.request, 'Phase successfully deleted.')
(Pdb) n
> /app/asset_dashboard/views.py(337)get_success_url()
-> return reverse('project-detail', kwargs={'pk': context['phase'].project.id})
(Pdb) n
--Return--
> /app/asset_dashboard/views.py(337)get_success_url()->'/projects/85/'
-> return reverse('project-detail', kwargs={'pk': context['phase'].project.id})
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/views/generic/edit.py(213)delete()
-> self.object.delete()
(Pdb) s
--Call--
> /usr/local/lib/python3.8/site-packages/django/db/models/base.py(938)delete()
-> def delete(self, using=None, keep_parents=False):
(Pdb) self
<Phase: planning_feasibility - Q1 - 2023 -  new>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/base.py(939)delete()
-> using = using or router.db_for_write(self.__class__, instance=self)
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/base.py(940)delete()
-> assert self.pk is not None, (
(Pdb) self.pk
126
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/base.py(945)delete()
-> collector = Collector(using=using)
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/base.py(946)delete()
-> collector.collect([self], keep_parents=keep_parents)
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/base.py(947)delete()
-> return collector.delete()
(Pdb) s
--Call--
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(379)delete()
-> def delete(self):
(Pdb) self
<django.db.models.deletion.Collector object at 0x7fbf48ebd220>
(Pdb) self.__dict__
{'using': 'default', 'data': defaultdict(<class 'set'>, {<class 'asset_dashboard.models.Phase'>: {<Phase: planning_feasibility - Q1 - 2023 -  new>}, <class 'asset_dashboard.models.LocalAsset'>: {<LocalAsset: LocalAsset object (160)>, <LocalAsset: LocalAsset object (159)>}}), 'field_updates': defaultdict(..., {}), 'restricted_objects': defaultdict(..., {}), 'fast_deletes': [<QuerySet [<PortfolioPhase: PortfolioPhase object (112)>]>, <QuerySet [<PhaseZoneDistribution: PhaseZoneDistribution object (165)>, <PhaseZoneDistribution: PhaseZoneDistribution object (166)>, <PhaseZoneDistribution: PhaseZoneDistribution object (167)>, <PhaseZoneDistribution: PhaseZoneDistribution object (168)>, <PhaseZoneDistribution: PhaseZoneDistribution object (169)>]>, <QuerySet [<Phase_funding_streams: Phase_funding_streams object (38)>]>], 'dependencies': defaultdict(<class 'set'>, {<class 'asset_dashboard.models.Phase'>: {<class 'asset_dashboard.models.LocalAsset'>}})}
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(381)delete()
-> for model, instances in self.data.items():
(Pdb) self.data
defaultdict(<class 'set'>, {<class 'asset_dashboard.models.Phase'>: {<Phase: planning_feasibility - Q1 - 2023 -  new>}, <class 'asset_dashboard.models.LocalAsset'>: {<LocalAsset: LocalAsset object (160)>, <LocalAsset: LocalAsset object (159)>}})
(Pdb) self.data.items()
dict_items([(<class 'asset_dashboard.models.Phase'>, {<Phase: planning_feasibility - Q1 - 2023 -  new>}), (<class 'asset_dashboard.models.LocalAsset'>, {<LocalAsset: LocalAsset object (160)>, <LocalAsset: LocalAsset object (159)>})])
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(382)delete()
-> self.data[model] = sorted(instances, key=attrgetter("pk"))
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(381)delete()
-> for model, instances in self.data.items():
(Pdb) self.data
defaultdict(<class 'set'>, {<class 'asset_dashboard.models.Phase'>: [<Phase: planning_feasibility - Q1 - 2023 -  new>], <class 'asset_dashboard.models.LocalAsset'>: {<LocalAsset: LocalAsset object (160)>, <LocalAsset: LocalAsset object (159)>}})
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(382)delete()
-> self.data[model] = sorted(instances, key=attrgetter("pk"))
(Pdb) self.data[model]
{<LocalAsset: LocalAsset object (160)>, <LocalAsset: LocalAsset object (159)>}
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(381)delete()
-> for model, instances in self.data.items():
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(387)delete()
-> self.sort()
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(389)delete()
-> deleted_counter = Counter()
(Pdb) self
<django.db.models.deletion.Collector object at 0x7fbf48ebd220>
(Pdb) self.__dict__
{'using': 'default', 'data': {<class 'asset_dashboard.models.LocalAsset'>: [<LocalAsset: LocalAsset object (159)>, <LocalAsset: LocalAsset object (160)>], <class 'asset_dashboard.models.Phase'>: [<Phase: planning_feasibility - Q1 - 2023 -  new>]}, 'field_updates': defaultdict(..., {}), 'restricted_objects': defaultdict(..., {}), 'fast_deletes': [<QuerySet [<PortfolioPhase: PortfolioPhase object (112)>]>, <QuerySet [<PhaseZoneDistribution: PhaseZoneDistribution object (165)>, <PhaseZoneDistribution: PhaseZoneDistribution object (166)>, <PhaseZoneDistribution: PhaseZoneDistribution object (167)>, <PhaseZoneDistribution: PhaseZoneDistribution object (168)>, <PhaseZoneDistribution: PhaseZoneDistribution object (169)>]>, <QuerySet [<Phase_funding_streams: Phase_funding_streams object (38)>]>], 'dependencies': defaultdict(<class 'set'>, {<class 'asset_dashboard.models.Phase'>: {<class 'asset_dashboard.models.LocalAsset'>}})}
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(392)delete()
-> if len(self.data) == 1 and len(instances) == 1:
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(400)delete()
-> with transaction.atomic(using=self.using, savepoint=False):
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(402)delete()
-> for model, obj in self.instances_with_model():
(Pdb) model
<class 'asset_dashboard.models.LocalAsset'>
(Pdb) obj
*** NameError: name 'obj' is not defined
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(403)delete()
-> if not model._meta.auto_created:
(Pdb) model
<class 'asset_dashboard.models.LocalAsset'>
(Pdb) obj
<LocalAsset: LocalAsset object (159)>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(404)delete()
-> signals.pre_delete.send(
(Pdb) model
<class 'asset_dashboard.models.LocalAsset'>
(Pdb) obj
<LocalAsset: LocalAsset object (159)>
(Pdb) self.using
'default'
(Pdb) self.origin
*** AttributeError: 'Collector' object has no attribute 'origin'
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(405)delete()
-> sender=model, instance=obj, using=self.using
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(404)delete()
-> signals.pre_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(402)delete()
-> for model, obj in self.instances_with_model():
(Pdb) model
<class 'asset_dashboard.models.LocalAsset'>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(403)delete()
-> if not model._meta.auto_created:
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(404)delete()
-> signals.pre_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(405)delete()
-> sender=model, instance=obj, using=self.using
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(404)delete()
-> signals.pre_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(402)delete()
-> for model, obj in self.instances_with_model():
(Pdb) model
<class 'asset_dashboard.models.LocalAsset'>
(Pdb) obj
<LocalAsset: LocalAsset object (160)>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(403)delete()
-> if not model._meta.auto_created:
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(404)delete()
-> signals.pre_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(405)delete()
-> sender=model, instance=obj, using=self.using
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(404)delete()
-> signals.pre_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(402)delete()
-> for model, obj in self.instances_with_model():
(Pdb) obj
<Phase: planning_feasibility - Q1 - 2023 -  new>
(Pdb) n
Internal StopIteration
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(402)delete()
-> for model, obj in self.instances_with_model():
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(409)delete()
-> for qs in self.fast_deletes:
(Pdb) qs
*** NameError: name 'qs' is not defined
(Pdb) s
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(410)delete()
-> count = qs._raw_delete(using=self.using)
(Pdb) qs
<QuerySet [<PortfolioPhase: PortfolioPhase object (112)>]>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(411)delete()
-> if count:
(Pdb) count
1
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(412)delete()
-> deleted_counter[qs.model._meta.label] += count
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(409)delete()
-> for qs in self.fast_deletes:
(Pdb) qs
<QuerySet []>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(410)delete()
-> count = qs._raw_delete(using=self.using)
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(411)delete()
-> if count:
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(412)delete()
-> deleted_counter[qs.model._meta.label] += count
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(409)delete()
-> for qs in self.fast_deletes:
(Pdb) qs
<QuerySet []>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(410)delete()
-> count = qs._raw_delete(using=self.using)
(Pdb) self.fast_deletes
[<QuerySet []>, <QuerySet []>, <QuerySet [<Phase_funding_streams: Phase_funding_streams object (38)>]>]
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(411)delete()
-> if count:
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(412)delete()
-> deleted_counter[qs.model._meta.label] += count
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(409)delete()
-> for qs in self.fast_deletes:
(Pdb) qs
<QuerySet []>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(415)delete()
-> for model, instances_for_fieldvalues in self.field_updates.items():
(Pdb) model
<class 'asset_dashboard.models.Phase'>
(Pdb) instances_for_fieldvalues
*** NameError: name 'instances_for_fieldvalues' is not defined
(Pdb) s
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(422)delete()
-> for instances in self.data.values():
(Pdb) instances_for_fieldvalues
*** NameError: name 'instances_for_fieldvalues' is not defined
(Pdb) self.data.values()
dict_values([[<LocalAsset: LocalAsset object (159)>, <LocalAsset: LocalAsset object (160)>], [<Phase: planning_feasibility - Q1 - 2023 -  new>]])
(Pdb) instances
{<LocalAsset: LocalAsset object (160)>, <LocalAsset: LocalAsset object (159)>}
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(423)delete()
-> instances.reverse()
(Pdb) instances
[<LocalAsset: LocalAsset object (159)>, <LocalAsset: LocalAsset object (160)>]
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(422)delete()
-> for instances in self.data.values():
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(423)delete()
-> instances.reverse()
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(422)delete()
-> for instances in self.data.values():
(Pdb) instances
[<Phase: planning_feasibility - Q1 - 2023 -  new>]
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(426)delete()
-> for model, instances in self.data.items():
(Pdb) model
<class 'asset_dashboard.models.Phase'>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(427)delete()
-> query = sql.DeleteQuery(model)
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(428)delete()
-> pk_list = [obj.pk for obj in instances]
(Pdb) query
<django.db.models.sql.subqueries.DeleteQuery object at 0x7fbf482b4760>
(Pdb) query.__dict__
{'_constructor_args': ((<class 'asset_dashboard.models.LocalAsset'>,), {}), 'model': <class 'asset_dashboard.models.LocalAsset'>, 'alias_refcount': {}, 'alias_map': {}, 'alias_cols': True, 'external_aliases': {}, 'table_map': {}, 'default_cols': True, 'default_ordering': True, 'standard_ordering': True, 'used_aliases': set(), 'filter_is_sticky': False, 'subquery': False, 'select': (), 'where': <WhereNode: (AND: )>, 'where_class': <class 'django.db.models.sql.where.WhereNode'>, 'group_by': None, 'order_by': (), 'low_mark': 0, 'high_mark': None, 'distinct': False, 'distinct_fields': (), 'select_for_update': False, 'select_for_update_nowait': False, 'select_for_update_skip_locked': False, 'select_for_update_of': (), 'select_related': False, 'max_depth': 5, 'values_select': (), 'annotations': {}, 'annotation_select_mask': None, '_annotation_select_cache': None, 'combinator': None, 'combinator_all': False, 'combined_queries': (), 'extra': {}, 'extra_select_mask': None, '_extra_select_cache': None, 'extra_tables': (), 'extra_order_by': (), 'deferred_loading': (frozenset(), True), '_filtered_relations': {}, 'explain_query': False, 'explain_format': None, 'explain_options': {}}
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(429)delete()
-> count = query.delete_batch(pk_list, self.using)
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(430)delete()
-> if count:
(Pdb) n'
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(431)delete()
-> deleted_counter[model._meta.label] += count
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(433)delete()
-> if not model._meta.auto_created:
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(434)delete()
-> for obj in instances:
(Pdb) obj
<Phase: planning_feasibility - Q1 - 2023 -  new>
(Pdb) instances
[<LocalAsset: LocalAsset object (160)>, <LocalAsset: LocalAsset object (159)>]
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(435)delete()
-> signals.post_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(436)delete()
-> sender=model, instance=obj, using=self.using
(Pdb) obj
<LocalAsset: LocalAsset object (160)>
(Pdb) model
<class 'asset_dashboard.models.LocalAsset'>
(Pdb)  n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(435)delete()
-> signals.post_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(434)delete()
-> for obj in instances:
(Pdb) obj
<LocalAsset: LocalAsset object (160)>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(435)delete()
-> signals.post_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(436)delete()
-> sender=model, instance=obj, using=self.using
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(435)delete()
-> signals.post_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(434)delete()
-> for obj in instances:
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(426)delete()
-> for model, instances in self.data.items():
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(427)delete()
-> query = sql.DeleteQuery(model)
(Pdb) model
<class 'asset_dashboard.models.Phase'>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(428)delete()
-> pk_list = [obj.pk for obj in instances]
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(429)delete()
-> count = query.delete_batch(pk_list, self.using)
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(430)delete()
-> if count:
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(431)delete()
-> deleted_counter[model._meta.label] += count
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(433)delete()
-> if not model._meta.auto_created:
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(434)delete()
-> for obj in instances:
(Pdb) obj
<LocalAsset: LocalAsset object (159)>
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(435)delete()
-> signals.post_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(436)delete()
-> sender=model, instance=obj, using=self.using
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(435)delete()
-> signals.post_delete.send(
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(434)delete()
-> for obj in instances:
(Pdb) n
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(426)delete()
-> for model, instances in self.data.items():
(Pdb) n
django.db.utils.IntegrityError: insert or update on table "asset_dashboard_phasezonedistribution" violates foreign key constraint "asset_dashboard_phas_phase_id_535d6e36_fk_asset_das"
DETAIL:  Key (phase_id)=(126) is not present in table "asset_dashboard_phase".
> /usr/local/lib/python3.8/site-packages/django/db/models/deletion.py(426)delete()
-> for model, instances in self.data.items():
(Pdb) model
<class 'asset_dashboard.models.Phase'>
(Pdb) c
Internal Server Error: /projects/phases/delete/126/
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 242, in _commit
    return self.connection.commit()
psycopg2.errors.ForeignKeyViolation: insert or update on table "asset_dashboard_phasezonedistribution" violates foreign key constraint "asset_dashboard_phas_phase_id_535d6e36_fk_asset_das"
DETAIL:  Key (phase_id)=(126) is not present in table "asset_dashboard_phase".


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/contrib/auth/mixins.py", line 52, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/views/generic/edit.py", line 218, in post
    return self.delete(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/views/generic/edit.py", line 213, in delete
    self.object.delete()
  File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 947, in delete
    return collector.delete()
  File "/usr/local/lib/python3.8/site-packages/django/db/models/deletion.py", line 426, in delete
    for model, instances in self.data.items():
  File "/usr/local/lib/python3.8/site-packages/django/db/transaction.py", line 232, in __exit__
    connection.commit()
  File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 266, in commit
    self._commit()
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 242, in _commit
    return self.connection.commit()
  File "/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 242, in _commit
    return self.connection.commit()
django.db.utils.IntegrityError: insert or update on table "asset_dashboard_phasezonedistribution" violates foreign key constraint "asset_dashboard_phas_phase_id_535d6e36_fk_asset_das"
DETAIL:  Key (phase_id)=(126) is not present in table "asset_dashboard_phase".

"POST /projects/phases/delete/126/ HTTP/1.1" 500 127474
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment