code: def _attach_to_model(self, model):
          
          super(RelatedFieldMixin, self)._attach_to_model(model)
  
          if model.abstract:
              # do not manage the relation if it's an abstract model
              return
  
          # now, check related_name and save the relation in the database
  
          # get related parameters to identify the relation
          self.related_name = self._get_related_name()
          self.related_to = self._get_related_model_name()
  
          # create entry for the model in the _relations list of the database
          if not hasattr(self.database, '_relations'):
              self.database._relations = {}
          self.database._relations.setdefault(self.related_to, [])
  
          # check unicity of related name for related model
          self._assert_relation_does_not_exists()
  
          # the relation didn't exists, we can save it
          relation = (self._model._name, self.name, self.related_name)
          self.database._relations[self.related_to].append(relation)
docs: When we have a model, save the relation in the database, to later create
          RelatedCollection objects in the related model