'Delete the value specified by `key`.
Arguments:
key (`DjangoKeyValueStore.Key`): The field value to delete
Raises: KeyError if key isn\'t found in the cache'

@contract(key=DjangoKeyValueStore.Key)
def delete(self, key):

    if self.read_only:
        return
    if ((key.scope.user == UserScope.ONE) and (not self.user.is_anonymous())):
        assert (key.user_id == self.user.id)
    if (key.scope not in self.cache):
        raise KeyError(key.field_name)
    self.cache[key.scope].delete(key)
