代码之家  ›  专栏  ›  技术社区  ›  Bryan Ward

Django JSON夹具生成

  •  3
  • Bryan Ward  · 技术社区  · 15 年前

    我刚接触到Django,来自Rails,我发现Django设备(通常是我收集到的JSON)有点笨拙和不受欢迎,至少与我熟悉的Rails设备相比。我喜欢嵌入一些Ruby代码,例如 <%= Time.now %> 或者在与外键相关时按名称引用其他设备(以避免跟踪ID)。

    所以问题是,你如何更有经验的Django开发人员建立你的设备。您是坐下来手工编写json/xml/yaml,还是有其他工具可以帮助您,类似于Rails提供给我的工具?或者,在/manage.py shell中创建一些数据并将这些数据转储到fixture,而不是手工编写fixture,这是最简单的方法吗?或者,您是否发现自己在测试类的设置(self)方法中放置了大量数据?如果你有更多的经验,那么用手写这些东西就不会那么乏味了?

    3 回复  |  直到 15 年前
        1
  •  2
  •   Derek Reynolds    15 年前

    Django的管理站点非常适合快速输入虚拟数据或初始数据。然后可以将其转储到JSON文件(或任何格式)。

    http://docs.djangoproject.com/en/dev/ref/django-admin/#dumpdata-appname-appname-appname-model

    django-admin.py dumpdata | pbcopy 将以JSON格式将所有数据转储到剪贴板。

    小心转储ContentType和AUTH表,因为当将fixture重新加载到数据库中时,这可能会导致问题。

        2
  •  1
  •   Lyle    14 年前

    退房 django-dilla . 它为您的模型生成随机数据,甚至图像。用于测试,无需手动将数据输入admin。

        3
  •  0
  •   Aaron Lelevier    10 年前

    将项目中所有数据的简单数据转储到 Json 固定装置

    python manage.py dumpdata --format=json myapp > /path/to/myapp/fixtures/initial_data.json
    

    然后在 tests.py 添加此项以包括装置:

    class ViewTests(TestCase):
    
        # load fixtures
        fixtures = ['data2.json']
    
            def setUp(self):
            # continue remainder of test code