Python 如何删除Django中不可为空的字段?

Python 如何删除Django中不可为空的字段?,python,django,django-models,Python,Django,Django Models,我的模型中有一个要删除的类别字段。但是,它没有null=True,因此(根据以前的经验)删除它将导致django.db.utils.IntegrityError:column“category”中的null值违反非null约束错误 有办法吗 以下是字段: class Post(models.Model): ... category = models.CharField(max_length=20, choices=CATEGORY_CHOICES, default='1') 您

我的模型中有一个要删除的
类别
字段。但是,它没有
null=True
,因此(根据以前的经验)删除它将导致
django.db.utils.IntegrityError:column“category”中的null值违反非null约束
错误

有办法吗

以下是字段:

class Post(models.Model):
    ...
    category = models.CharField(max_length=20, choices=CATEGORY_CHOICES, default='1')

您必须运行
manage.py makemigrations

manage.py migrate
在创建新的django字段时,默认情况下应用更改,如果不显式提供参数null,它将被视为False,因此如果在创建时未指定null参数,它将默认为null=False。只需删除该字段,保存文件并进行python.manage.py makemigrations,然后进行python.manage.py migrate,以反映您在DB中对模型所做的更改

只需删除它和
makemigrations&migrate
,只有在尝试添加新的非空列时才会发生这种情况,而不是在删除它时。