标签: django-fixtures

加载夹具时django unittest出错

我正在为django应用程序进行单元测试.我需要在数据库中为我的测试提供一些数据,所以我使用的是json fixture.

我有两个灯具:

  1. 对于用户而言,它运作正常.
  2. 对于一些网页

夹具2导致以下错误:

Problem installing fixture 'C:\Users\luc\Dev\Hg\mnl-adminpub\website\fixtures\website-unittest.json': Traceback (most recent call last):
  File "C:\Python26\lib\site-packages\django\core\management\commands\loaddata.py", line 169, in handle
    obj.save(using=using)
  File "C:\Python26\lib\site-packages\django\core\serializers\base.py", line 165, in save
    models.Model.save_base(self.object, using=using, raw=True)
  File "C:\Python26\lib\site-packages\django\db\models\base.py", line 528, in save_base
    result = manager._insert(values, return_id=update_pk, using=using)
  File "C:\Python26\lib\site-packages\django\db\models\manager.py", line 195, in _insert
    return insert_query(self.model, values, **kwargs)
  File "C:\Python26\lib\site-packages\django\db\models\query.py", line 1479, in insert_query
    return query.get_compiler(using=using).execute_sql(return_id)
  File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 783, in execute_sql
    cursor = super(SQLInsertCompiler, self).execute_sql(None)
  File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 727, in execute_sql
    cursor.execute(sql, params)
  File "C:\Python26\lib\site-packages\django\db\backends\mysql\base.py", …
Run Code Online (Sandbox Code Playgroud)

python django django-testing django-fixtures

4
推荐指数
1
解决办法
1576
查看次数

如何从所有应用程序加载Django灯具?

我在我的Django应用程序中使用了fixture,但只有两个应用程序正在加载他们的灯具.

当我用--verbosity = 2手动运行loaddata时,我可以看到它只在两个应用程序中查找,尽管我有更多内部创建的fixtures目录.

所有应用都已正确安装在settings.py中.

从文档中可以看出,Django应该在每个已安装应用程序的fixtures /目录中进行搜索.

为什么有些应用被忽略了?

django unit-testing fixtures django-fixtures

4
推荐指数
2
解决办法
4357
查看次数

从URL安装Django fixture

我有一些相当大的静态数据(每个大约20MB),我想保留我的回购以保持回购规模.有没有办法从URL加载灯具?我采取了一个长镜头,并将我的夹具推到S3,希望以下工作,但没有运气.

python manage.py loaddata http://s3.amazonaws.com/path/to/fixtures/initial_stuff.json
Run Code Online (Sandbox Code Playgroud)

有没有人对通过HTTP安装灯具有任何想法?

django django-fixtures

4
推荐指数
1
解决办法
396
查看次数

Django灯具.加载初始数据流程正在被杀死

我一直致力于将两个遗留数据库中的57k +记录精炼和重构为一个与Django兼容的实体.现在,当我完成后,我将其作为夹具倾倒,我试图在生产环境中加载它.

我的问题是这个过程在一段时间后被"杀死".我的过程是:

./manage.py syncdb --noinput
./manage.py loaddata core/fixtures/auth.json  # just a default user
./manage.py migrate
Run Code Online (Sandbox Code Playgroud)

结果:

Running migrations for django_extensions:  # custom apps migrate just fine
 - Migrating forwards to 0001_empty.
 > django_extensions:0001_empty
 - Loading initial data for django_extensions.
Installed 0 object(s) from 0 fixture(s)
Running migrations for myotherapp:
 - Migrating forwards to 0001_initial.
 > myotherapp:0001_initial
 - Loading initial data for myotherapp.
Installed 4 object(s) from 1 fixture(s)  # my other app with a fixture migrates ok
Running migrations …
Run Code Online (Sandbox Code Playgroud)

django django-south django-fixtures

4
推荐指数
1
解决办法
2400
查看次数

Django loaddata与自然键不查询正确的外键

这是我的问题.我正在尝试加载一些与另一个模型具有自然关键关系的数据.

我修改了父模型以生成自然键.

我使用以下命令从旧数据库导出数据:

manage.py dumpdata resources.image -n --indent 4 > images.json
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用以下命令导入新数据库:

manage.py loaddata images.json
Run Code Online (Sandbox Code Playgroud)

此时我收到错误:

IntegrityError: Problem installing fixtures: The row in table 'resources_image' 
with primary key '340' has an invalid foreign key: resources_image.voyage_id contains 
a value '41890' that does not have a corresponding value in voyage_voyage.id.
Run Code Online (Sandbox Code Playgroud)

它正在尝试查询voyage_voyage.id而不是get_by_natural_key函数中指定的voyage_voyage.voyage_id.我仔细检查了,夹具中的钥匙在voyage_id字段中.下面是我的代码和示例夹具.

父模型:

# for parsing natural key
class VoyageManager(models.Manager):
    def get_by_natural_key(self, voyage_id):
        return self.get(voyage_id=voyage_id)


class Voyage(models.Model):

    # for parsing natural key
    objects = VoyageManager()


    voyage_id = models.IntegerField("Voyage ID (can be empty)", null=True, …
Run Code Online (Sandbox Code Playgroud)

python django django-fixtures

4
推荐指数
1
解决办法
2073
查看次数

自动加载Django Fixture

我正在运行Django 1.7.我的项目文件树是这样的:

/project/app/fixtures/initial_data.json
/project/app/settings.py
Run Code Online (Sandbox Code Playgroud)

我知道我可以运行python manage.py loaddata app/fixtures/initial_data.json命令来填充我的数据库,但我想在python manage.py migrate运行时自动加载它.我的设置包括:

FIXTURE_DIRS = (
    os.path.join(BASE_DIR, '/app/fixtures/'),
)
Run Code Online (Sandbox Code Playgroud)

但是在运行迁移时不应用夹具.什么似乎是问题?

python django fixtures django-fixtures

4
推荐指数
1
解决办法
2938
查看次数

如何修复负载夹具错误

我正在尝试将初始数据导入我的Django应用程序.我有几个表,但我想逐个导入它们.

我决定从最简单的表开始:

class ClientRun(models.Model):
    start_time = models.BigIntegerField()
    end_time = models.BigIntegerField()
    ip = models.GenericIPAddressField()
    country = models.CharField(max_length=255)

    def __unicode__(self):
        return str(self.start_time) + " " + str(self.end_time)
Run Code Online (Sandbox Code Playgroud)

我手动创建了一个fixture文件:

[
  {
    "model": "georoute.clientrun",
    "pk": 1,
    "fields": {
        "ip": "0.0.0.0",
        "start_time": 0,
        "end_time": 0,
        "country": "ZZ"
    }
  },
]
Run Code Online (Sandbox Code Playgroud)

我跑的时候

python manage.py loaddata shengy_clientrun.json
Run Code Online (Sandbox Code Playgroud)

它返回:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line …
Run Code Online (Sandbox Code Playgroud)

python django django-fixtures

4
推荐指数
1
解决办法
2373
查看次数

如何在django taggit标签模型中设置初始标签数据

是否可以通过固定装置初始化标签数据,如下所示;

[{
    "fields": {
        "name": "tag1"
    },
    "model": "taggit.Tag",
    "pk": 1
},
{
    "fields": {
        "name": "tag2"
    },
    "model": "taggit.Tag",
    "pk": 2
},
{
    "fields": {
        "name": "tag3"
    },
    "model": "taggit.Tag",
    "pk": 3
},]
Run Code Online (Sandbox Code Playgroud)

当我尝试使用上面的文件时,出现以下错误。我猜它试图插入与第一个相同的第二个,所以它不是唯一的。是否可以在夹具文件中设置slug,或者我应该尝试其他方法来初始化我的标签数据。

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
338, in execute_from_command_line
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 390,
 in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 441,
 in execute
    output = self.handle(*args, **options)
  File …
Run Code Online (Sandbox Code Playgroud)

django-fixtures django-taggit

4
推荐指数
1
解决办法
518
查看次数

Django - XML中的Fixtures

任何人都可以指出描述如何使用XML完成夹具的文档吗?

django django-fixtures

3
推荐指数
1
解决办法
1295
查看次数

加载 Django 夹具

我正在尝试在 Django 测试中加载一些装置,但它们似乎没有加载。

在我的 settings.py 中,我指定:

FIXTURE_DIRS = (os.path.join(PROJECT_DIR, 'dhtmlScheduler\\fixtures\\'))
Run Code Online (Sandbox Code Playgroud)

现在,在我的测试用例中:

def setUp(self):
    fixtures = ['users.json', 'employee.json']
Run Code Online (Sandbox Code Playgroud)

我还应该提到我正在使用 Nose 测试运行器:

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
Run Code Online (Sandbox Code Playgroud)

和单元测试:

class TestEmployee(unittest.TestCase):
Run Code Online (Sandbox Code Playgroud)

我一定错过了一些明显的东西,有人能指出我正确的方向吗?

python django django-fixtures

3
推荐指数
1
解决办法
5018
查看次数