南方(Django)可以将数据行插入数据库吗?

时间:2012-08-08 15:35:29

标签: python mysql django django-south insertion

我想创建一个表,然后创建一个应插入该表的数据列表。南方是否有能力做这样的事情?如果是的话,你有没有参考资料告诉我如何做到这一点?

我希望能够做到这一点,因为在这一点上,似乎拥有'完全'相同数据的唯一方法是自己手动将它们插入数据库。

我想要一些在表格中插入行的“好”自动方式。

2 个答案:

答案 0 :(得分:7)

你可以!它被称为"data migration"

有很多时候你可能想要使用一个:上面的链接给出了一个很好的例子,另一个是"data migration for every Django project"

from south.v2 import DataMigration
from django.conf import settings

class Migration(DataMigration):

    def forwards(self, orm):
        Site = orm['sites.Site']
        site = Site.objects.get(id=settings.SITE_ID)
        site.domain = settings.DOMAIN_NAME
        site.name = settings.SITE_NAME
        site.save()

(这会从settings.py获取域名和网站名称,以便与sites framework一起使用)

答案 1 :(得分:4)

您想要使用fixtures

  1. 在应用程序的文件夹中创建一个fixtures目录。
  2. 在该文件夹中创建一个字典文件intial_data.json(或XML / YAML)
  3. 使用您要插入的数据填充文件。 Example
  4. 运行manage.py loaddata <fixturename>,其中<fixturename>是您已创建的灯具文件的名称。
  5. South以同样的方式处理这个问题,但似乎Django的核心方法更具记录性。