即时尝试使用我当前的项目,但遇到数据库迁移问题。
这是我的模特
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:
我该怎么办?
答案 0 :(得分:3)
'Level'由MPTTModel自动添加,以表示树中特定节点的“深度”。如果尚未创建树结构,则可以安全地选择选项1并将所有内容默认为级别0(根)。如果您还没有设置树结构,这应该没问题,并且应该在您稍后使用树时进行调整。
如果您已经考虑了树结构并且需要在数据中反映出来,那么您仍然需要执行此操作,但是您需要使用(可能是手写的)data migration来设置它正确的价值观。