首页 > 解决方案 > 如何在 django 数据迁移中更改站点模型对象?

问题描述

我想要做的是我想将站点显示名称和域从 example.com 更改为 mydomain.com 。通常,我可以进入 django 管理员并执行此操作。但我想使用数据迁移。我的代码如下:

from django.db import migrations


def change_site_name_from_example_to_mydomain_func(apps, schema_editor):
    Site = apps.get_model('sites', 'Site')
    site = Site.objects.get(name='example.com')
    site.name = 'mydomain.com'
    site.domain = 'mydomain.com'
    site.save()


class Migration(migrations.Migration):

    dependencies = [
        ('accounts', '0006_populate_database_createsuperuser'),
    ]

    operations = [
        migrations.RunPython(change_site_name_from_example_to_mydomain_func),
    ]

但是,我收到一条错误消息,说没有网站这样的应用程序。问题是,如何在数据迁移中使用站点模型?错误是这样的: LookupError: No installed app with label 'sites'.

标签: pythondjangodjango-migrations

解决方案


您链接到的问题建议您向网站应用程序添加依赖项,例如

dependencies = [
    ('accounts', '0006_populate_database_createsuperuser'),
    ('sites', '0002_alter_domain_unique'),
]

推荐阅读