def grant_to(self, email, granter):
        if not self.allows_grant_by(granter):
            raise DeferredAwardGrantNotAllowedException()
        if not self.reusable:
            # If not reusable, reassign email and regenerate claim code.
            self.email = email
            self.claim_code = make_random_code()
            self.save()
            return self
        else:
            # If reusable, create a clone and leave this deferred award alone.
            new_da = DeferredAward(badge=self.badge, email=email,
                                   creator=granter, reusable=False)
            new_da.save()
            return new_da
Grant this deferred award to the given email
dataset/ETHPy150Open mozilla/django-badger/badger/models.py/DeferredAward.grant_to