code: def _set_values(self):
          
          # Iterate all keys and values in data
          for k, v in self._data.items():
              # If it's a dict, process it (it's probably instance data)
              if isinstance(v, dict):
                  try:
                      # Get related model from field (follow path)
                      rel_model = self._model
                      for attr in k.split('__'):
                          rel_model = getattr(rel_model, attr).field.related_model
  
                  except AttributeError:
                      # Not a model, maybe it is a dict field (?)
                      pass
  
                  else:
                      # Model, first shorten field name
                      k = k.replace('__', '_')
  
                      # Now init instance if required (not if we got ID None)
                      if 'id' in v and v['id'] is None:
                          # This means we grouped by ID, if it's none then FK is None
                          v = None
  
                      else:
                          # Either we have ID or we didn't group by ID, use instance
                          v = rel_model(**v)
  
              # Set value
              setattr(self, k, v)
docs: Populate instance with given.