south datamigrate将站点添加为默认值

时间:2013-06-10 08:01:24

标签: django django-south

我正在南方迁移,

我需要将网站添加到数据库,但无法找到找到它们的正确语法。

from django.contrib.sites.models import Site
...
    def forwards(self, orm):
        "Write your forwards methods here."
        # Note: Remember to use orm['appname.ModelName'] rather than "from appname.models..."
        Site = orm['Site']
...

它请求一个不存在的appname

提前致谢

p.s很难谷歌'网站'或'网站'

2 个答案:

答案 0 :(得分:1)

以下是Site

Source

由于未指定app_name,因此采用默认值。因此app_name  这是site

答案 1 :(得分:0)

这是我的一个项目的数据迁移,它将当前站点(即settings.SITE_ID)添加到每个Gallery对象:

class Migration(DataMigration):

    def forwards(self, orm):
        current_site = orm['sites.Site'].objects.get(pk=settings.SITE_ID)

        for gallery in orm.Gallery.objects.all():
            gallery.sites.add(current_site)

    def backwards(self, orm):
        raise RuntimeError("Cannot reverse this migration.")

另见South's own documentation on data migrations