[1.6.x] Fixed #20933 -- Allowed loaddata to load fixtures from relative paths.
Backport of 6e846f7627
from master.
This commit is contained in:
parent
b189169ed0
commit
12d364a9b0
|
@ -181,7 +181,7 @@ class Command(BaseCommand):
|
||||||
if self.verbosity >= 2:
|
if self.verbosity >= 2:
|
||||||
self.stdout.write("Loading '%s' fixtures..." % fixture_name)
|
self.stdout.write("Loading '%s' fixtures..." % fixture_name)
|
||||||
|
|
||||||
if os.path.isabs(fixture_name):
|
if os.path.sep in fixture_name:
|
||||||
fixture_dirs = [os.path.dirname(fixture_name)]
|
fixture_dirs = [os.path.dirname(fixture_name)]
|
||||||
fixture_name = os.path.basename(fixture_name)
|
fixture_name = os.path.basename(fixture_name)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -90,8 +90,8 @@ fixtures. You can set the :setting:`FIXTURE_DIRS` setting to a list of
|
||||||
additional directories where Django should look.
|
additional directories where Django should look.
|
||||||
|
|
||||||
When running :djadmin:`manage.py loaddata <loaddata>`, you can also
|
When running :djadmin:`manage.py loaddata <loaddata>`, you can also
|
||||||
specify an absolute path to a fixture file, which overrides searching
|
specify a path to a fixture file, which overrides searching the usual
|
||||||
the usual directories.
|
directories.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
|
|
|
@ -39,12 +39,6 @@ class Stuff(models.Model):
|
||||||
class Absolute(models.Model):
|
class Absolute(models.Model):
|
||||||
name = models.CharField(max_length=40)
|
name = models.CharField(max_length=40)
|
||||||
|
|
||||||
load_count = 0
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super(Absolute, self).__init__(*args, **kwargs)
|
|
||||||
Absolute.load_count += 1
|
|
||||||
|
|
||||||
|
|
||||||
class Parent(models.Model):
|
class Parent(models.Model):
|
||||||
name = models.CharField(max_length=10)
|
name = models.CharField(max_length=10)
|
||||||
|
|
|
@ -148,7 +148,22 @@ class TestFixtures(TestCase):
|
||||||
load_absolute_path,
|
load_absolute_path,
|
||||||
verbosity=0,
|
verbosity=0,
|
||||||
)
|
)
|
||||||
self.assertEqual(Absolute.load_count, 1)
|
self.assertEqual(Absolute.objects.count(), 1)
|
||||||
|
|
||||||
|
def test_relative_path(self):
|
||||||
|
directory = os.path.dirname(upath(__file__))
|
||||||
|
relative_path = os.path.join('fixtures', 'absolute.json')
|
||||||
|
cwd = os.getcwd()
|
||||||
|
try:
|
||||||
|
os.chdir(directory)
|
||||||
|
management.call_command(
|
||||||
|
'loaddata',
|
||||||
|
relative_path,
|
||||||
|
verbosity=0,
|
||||||
|
)
|
||||||
|
finally:
|
||||||
|
os.chdir(cwd)
|
||||||
|
self.assertEqual(Absolute.objects.count(), 1)
|
||||||
|
|
||||||
def test_unknown_format(self):
|
def test_unknown_format(self):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue