【发布时间】:2017-10-31 12:49:32
【问题描述】:
我在我的应用程序中使用站点应用程序 (django.contrib.sites)。我创建了一个数据迁移,它在创建数据库时设置当前站点的值,但是我的数据迁移是在安装站点应用程序之前执行的。如何强制在sites 迁移之后执行我的数据迁移。
该项目旨在成为其他项目的种子,我经常删除数据库并重新开始,因此初始 makemigrations/migrate 命令开箱即用非常重要。
我的迁移文件存在于主应用程序文件夹中:
project folder
..+app
....+migrations
......-0001_initial.py
这是迁移文件的内容:
from __future__ import unicode_literals
from django.db import migrations
def set_development_site(apps, schema_editor):
Site = apps.get_model('sites', 'Site')
current= Site.objects.get_current()
current.domain = "localhost:8000"
current.name = "Django-Angular-Webpack-Starter"
current.save()
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.RunPython(set_development_site),
]
以及python manage.py migrate 命令的输出:
Operations to perform:
Apply all migrations: admin, app, auth, authentication, authtoken, contenttypes, sessions, sites
Running migrations:
Applying contenttypes.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0001_initial... OK
Applying authentication.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying app.0001_initial...Traceback (most recent call last):
File "/home/user/devel/django-angular-webpack-starter/venv/lib/python3.5/site-packages/django/apps/registry.py", line 149, in get_app_config
return self.app_configs[app_label]
KeyError: 'sites'
【问题讨论】:
-
python manage.py 站点。在为您的应用启动命令之后。
标签: python django django-migrations