Python 如何从模型中删除字段。\u meta.fields
我使用add_to_class方法向auth.Group模型添加了一个字段,如下所示: 我在models.py中添加了以下内容:Python 如何从模型中删除字段。\u meta.fields,python,django,Python,Django,我使用add_to_class方法向auth.Group模型添加了一个字段,如下所示: 我在models.py中添加了以下内容: Group.add_to_class('type', models.CharField(max_length=100)) 当我这样做的时候,看起来这个字段已经添加到模型类中,但不是作为db字段。。。因此,当我试图访问组的管理页面时,它会说我的新字段不存在。经过一些研究,似乎用这种方法向auth.Group添加字段也不是很好 我想做的是删除我添加的新字段,但我不知道
Group.add_to_class('type', models.CharField(max_length=100))
当我这样做的时候,看起来这个字段已经添加到模型类中,但不是作为db字段。。。因此,当我试图访问组的管理页面时,它会说我的新字段不存在。经过一些研究,似乎用这种方法向auth.Group添加字段也不是很好 我想做的是删除我添加的新字段,但我不知道如何删除。根据我对这个答案的理解: 我必须从模型中删除该字段。\ u meta.fields列表,但我不知道如何删除 试试这个:
for field in ModelName._meta.fields:
if field.name == 'unwanted_field_name':
ModelName._meta.fields.remove(field)
只需省去最初添加它的代码,“当我尝试访问组的管理页面时,它会说我的新字段不存在”…这是因为基础数据库的架构没有更改。您需要使用Django 1.7中的South或new migrations功能将字段实际添加到数据库中,而不仅仅是模型类。如果您删除添加的代码
组。将\u添加到\u类…
则新字段将不再存在于模型类中。我删除了代码,然后将数据库与South同步,并使用supervisor重新启动服务器但战场总是在那里。看起来我多次添加了相同的字段。。。再次检查我编辑的问题。对于您的第一条评论,south没有跟踪更改:是否有任何方法可以从模型中删除字段。\u meta.fields?