数据库
首页 > 数据库> > python-Django mptt数据库迁移错误

python-Django mptt数据库迁移错误

作者:互联网

我试图让mptt处理我当前的项目,但是数据库迁移出现问题.

这是我的模特

from django.db import models
from mptt.models import MPTTModel, TreeForeignKey

class Section(MPTTModel):
    name = models.CharField(max_length=50, unique=True)
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)

    class MPTTMeta:
        order_insertion_by = ['name']

我在命令行中运行它:

sudo python manage.py makemigrations core

但似乎与级别字段有关

You are trying to add a non-nullable field 'level' to section without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
 1) Provide a one-off default now (will be set on all existing rows)
 2) Quit, and let me add a default in models.py
Select an option:

我该怎么办?

解决方法:

MPTTModel自动添加“级别”以表示树中特定节点的“深度”.如果尚未创建树结构,则选择选项1并将所有内容默认设置为0级(根)应该是安全的.如果尚未设置树结构,这应该很好,并且在以后使用树时应进行调整.

如果您已经有了一个树形结构,并且需要在数据中反映出来,则仍然需要这样做,但是您需要在它后面加上一个(可能是手写的)data migration来设置正确的值.

标签:django-mptt,mptt,python,django
来源: https://codeday.me/bug/20191120/2042579.html