Как ссылаться на связанный объект после удаления объекта?

В заголовке: Как обратиться к связанному объекту после удаления объекта?

Простой пример:

ModelA(models.Model):
  ...
ModelB(models.Model):
  model_a = models.ForeignKey("ModelA", on_delete=models.CASCADE)
class TestView(APIView):
   def delete(self, request, pk):
      object_b = get_object_or_404(ModelB, pk=pk)
      object_a = object_b.model_a
      object_b.delete()

Теперь невозможно использовать объект_a, выскакивает эта ошибка:

'NoneType' object has no attribute 'id'

Такой подход тоже не работает:

class TestView(APIView):
   def delete(self, request, pk):
      object_b = get_object_or_404(ModelB, pk=pk)
      object_a = ModelA.objects.get(id=object_b.object_a.id)
      object_b.delete()

Связанные кверисеты могут быть использованы позже с помощью list(queryset), а как насчет одного объекта?

Вернуться на верх