必须使用MyModel实例作为第一个参数调用unbound方法save()

时间:2018-01-24 00:32:20

标签: django django-models

我正在使用setattr()来设置Django模型的新对象的属性。

obj = apps.get_model(app_label="theme", model_name="MyModel")
setattr(obj,"myCol",100)
obj.save()

我收到此错误:TypeError: unbound method save() must be called with DataPopulationTracts2016 instance as first argument (got nothing instead)

我想将MyModel的新实例保存到模型中,使用get_model()setattr()创建模型的新实例并设置其属性。如何使get_model()setattr()save()合作?

编辑:为了澄清,我正在制作一个manage.py命令,用户输入他们想要为其添加新记录的模型和列。

1 个答案:

答案 0 :(得分:2)

enter image description here获取模型。所以你应该创建一个实例:

Model = apps.get_model(app_label="theme", model_name="MyModel")
obj = Model()
setattr(obj,"myCol",100)
obj.save()

注意:我假设你在这里创建了一个简化的例子。但是,如果你真的不需要额外的活力,你应该更喜欢做香草:

MyModel.objects.create(myCol=100)