diff --git a/rhodecode/model/__init__.py b/rhodecode/model/__init__.py --- a/rhodecode/model/__init__.py +++ b/rhodecode/model/__init__.py @@ -43,6 +43,7 @@ import logging from rhodecode.model import meta +from rhodecode.lib.utils2 import safe_str log = logging.getLogger(__name__) @@ -86,7 +87,7 @@ class BaseModel(object): if isinstance(instance, cls): return instance - elif isinstance(instance, (int, long)) or str(instance).isdigit(): + elif isinstance(instance, (int, long)) or safe_str(instance).isdigit(): return cls.get(instance) else: if instance: diff --git a/rhodecode/model/scm.py b/rhodecode/model/scm.py --- a/rhodecode/model/scm.py +++ b/rhodecode/model/scm.py @@ -186,7 +186,7 @@ class ScmModel(BaseModel): cls = Repository if isinstance(instance, cls): return instance - elif isinstance(instance, int) or str(instance).isdigit(): + elif isinstance(instance, int) or safe_str(instance).isdigit(): return cls.get(instance) elif isinstance(instance, basestring): return cls.get_by_repo_name(instance) @@ -592,4 +592,4 @@ class ScmModel(BaseModel): f.write(tmpl) os.chmod(_hook_file, 0755) else: - log.debug('skipping writing hook file') \ No newline at end of file + log.debug('skipping writing hook file')