code: def set_parent(self, new_site):
          
          if new_site:
              if not isinstance(new_site, Site):
                  raise Exception
          self.site = new_site
          self.propagate_data()
          return new_site
docs: Set self.site as either an empty string, or with a new Site.