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