Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从模型中删除字段。\u meta.fields_Python_Django - Fatal编程技术网

Python 如何从模型中删除字段。\u meta.fields

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添加字段也不是很好 我想做的是删除我添加的新字段,但我不知道

我使用add_to_class方法向auth.Group模型添加了一个字段,如下所示:

我在models.py中添加了以下内容:

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?