summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/core/management/commands/loaddata.py3
-rw-r--r--django/utils/_os.py2
2 files changed, 3 insertions, 2 deletions
diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py
index 45f25c21db..6856e85e45 100644
--- a/django/core/management/commands/loaddata.py
+++ b/django/core/management/commands/loaddata.py
@@ -16,6 +16,7 @@ from django.db import (connections, router, transaction, DEFAULT_DB_ALIAS,
from django.db.models import get_app_paths
from django.utils.encoding import force_text
from django.utils.functional import cached_property, memoize
+from django.utils._os import upath
from itertools import product
try:
@@ -237,7 +238,7 @@ class Command(BaseCommand):
dirs.append(d)
dirs.extend(list(settings.FIXTURE_DIRS))
dirs.append('')
- dirs = [os.path.abspath(os.path.realpath(d)) for d in dirs]
+ dirs = [upath(os.path.abspath(os.path.realpath(d))) for d in dirs]
return dirs
def parse_name(self, fixture_name):
diff --git a/django/utils/_os.py b/django/utils/_os.py
index 6c1cd17a83..607e02c94d 100644
--- a/django/utils/_os.py
+++ b/django/utils/_os.py
@@ -38,7 +38,7 @@ def upath(path):
"""
Always return a unicode path.
"""
- if not six.PY3:
+ if not six.PY3 and not isinstance(path, six.text_type):
return path.decode(fs_encoding)
return path