docs: def get_or_create(self, **kwargs):
          """
          Looks up an object with the given kwargs, creating one if necessary.
          Returns a tuple of (object, created), where created is a boolean
          specifying whether an object was created.
          """
          assert kwargs, \
              'get_or_create() must be passed at least one keyword argument'
          defaults = kwargs.pop('defaults', {})
          lookup = kwargs.copy()
          #TODO: check fields
          try:
              return self.get(**lookup), False
          except self.model.DoesNotExist:
              params = dict([(k, v) for k, v in kwargs.items() if '__' not in k])
              params.update(defaults)
              obj = self.model(**params)
              obj.save(force_insert=True)
              return obj, True