                  new_object = self.save_form(request, form, change=False)
                  form_validated = True
              else:
                  form_validated = False
                  new_object = self.model()
              formsets, inline_instances = self._create_formsets(request, new_object)
              if all_valid(formsets) and form_validated:
                  self.save_model(request, new_object, form, False)
                  self.save_related(request, form, formsets, False)
                  self.log_addition(request, new_object)
 
</s> remove                 new_object = obj
 </s> add                 new_object = form.instance </s> remove     Telegram, Pizza, Topping, FilteredManager, City, Restaurant, Worker)
 </s> add     Telegram, Pizza, Topping, FilteredManager, City, Restaurant, Worker,
    ParentWithDependentChildren) </s> remove class AdminViewOnSiteTest(TestCase):
 </s> add class AdminViewOnSiteTests(TestCase): </s> remove     EmptyModelVisible, EmptyModelMixin, State, City, Restaurant, Worker)
 </s> add     EmptyModelVisible, EmptyModelMixin, State, City, Restaurant, Worker,
    ParentWithDependentChildren, DependentChild)
                new_object = form.instance
                  new_object = self.save_form(request, form, change=False)
                  form_validated = True
              else:
                  form_validated = False
                new_object = form.instance
              formsets, inline_instances = self._create_formsets(request, new_object)
              if all_valid(formsets) and form_validated:
                  self.save_model(request, new_object, form, False)
                  self.save_related(request, form, formsets, False)
                  self.log_addition(request, new_object)
keep keep keep keep replace keep keep keep keep keep
 Fixed #20522 - Allowed use of partially validated object in ModelAdmin.add_view formset validation.

Updated ModelAdmin to use form.instance when passing parent model to
child inlines for add_view. There is effectively no change in the
change_view since the previously passed 'obj' is the same as form.instance.

Thanks to meshy for report, and EvilDMP and timo for review. 
django/contrib/admin/options.py