Django 在迁移中创建集合

Django 在迁移中创建集合,django,collections,migration,wagtail,Django,Collections,Migration,Wagtail,我希望为创建集合创建迁移应用一次迁移 我还不清楚创建集合的正确工作流程是什么,因为python代码,有人能帮我吗?这里提到的一些东西能起作用吗 python manage.py挤压迁移 关于好的,在网上搜索我找到了两种解决方案: 一个在中,另一个在中 在shell中测试代码后,我们可以看到它适用于创建集合: from wagtail.wagtailcore.models import Collection root_coll = Collection.get_first_root_node()

我希望为创建集合创建迁移应用一次迁移


我还不清楚创建集合的正确工作流程是什么,因为python代码,有人能帮我吗?

这里提到的一些东西能起作用吗

python manage.py挤压迁移


关于

好的,在网上搜索我找到了两种解决方案: 一个在中,另一个在

在shell中测试代码后,我们可以看到它适用于创建集合:

from wagtail.wagtailcore.models import Collection
root_coll = Collection.get_first_root_node()
root_coll.add_child(name='testcoll')
现在我们可以在迁移中使用此代码,因此,使用
/manage.py makemigrations home--empty
创建一个新的空迁移,并在以前的代码中添加:

from __future__ import unicode_literals

from django.db import migrations

from wagtail.wagtailcore.models import Collection


def create_collections(apps, schema_editor):
    names = [
        'video tutoriales',
        'videos personal',
        'videos varios',
        'imagenes tutoriales',
        'imagenes personal',
        'imaganes varias',
        'documentos tutoriales',
        'documentos personal',
        'documentos varios'
    ]
    # Get models

    # Get collection's root
    root_collection = Collection.get_first_root_node()

    for name in names:
        root_collection.add_child(name=name)


class Migration(migrations.Migration):
    dependencies = [
        ('home', '0002_create_homepage'),
    ]

    operations = [
        migrations.RunPython(create_collections),
    ]
首先,我们在一个变量中获得主
集合
节点,然后用其各自的名称添加任意数量的子节点

实际上是一个非常基本的代码


如果有人能优化它,欢迎你,谢谢你。

我把问题弄得更清楚了。考虑解释或阐述你的答案,这样它可以帮助其他用户,很难理解它是如何解决这个问题的。