Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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 具有数据库值的动态关键字_Python_Django - Fatal编程技术网

Python 具有数据库值的动态关键字

Python 具有数据库值的动态关键字,python,django,Python,Django,我有一个这样的模型: class meter1(models.Model): U1N = models.FloatField(default=0) U2N = models.FloatField(default=0) 在我的视图(简化)中,我希望动态设置数据库的值: def import_data: dict = {"1":"U1N","2":"U2N",} c = "1" q = meter1() q.eval('dict[c]') = "1"

我有一个这样的模型:

class meter1(models.Model):
    U1N = models.FloatField(default=0)
    U2N = models.FloatField(default=0)
在我的视图(简化)中,我希望动态设置数据库的值:

def import_data:
    dict = {"1":"U1N","2":"U2N",}
    c = "1"
    q = meter1()
    q.eval('dict[c]') = "1"
    q.save()
在real
dict
中包含60项,并且
c
在for循环中每次都会更改。此示例中的代码导致错误:
NameError:未定义名称“U1N”。


如何动态设置q的关键字?

您可以使用
setattr
来动态设置对象的属性。

您还可以从
dict
动态构建dict(您不应该使用内置名称作为标识符BTW),并将其作为kwargs传递给
meter1()
(顺便说一句,你不应该使用所有lowers作为类名)。哦,是的:你可能还想看看
modelmanager.create()

def import_data():
    fieldmap = {"1":"U1N","2":"U2N",}
    fieldindex = "1"
    kw = {fieldmap[fieldindex]: 1.0}

    # either:
    q = Meter1(**kw)
    q.save()

    # or:
    q = Meter1.objects.create(**kw)

setattr
怎么样?啊,是的,谢谢。我被eval()卡住了,忽略了setattr.+1的帮助!谢谢你的提示!我会研究它们的+1