如何根据变量指定GAE Python ndb字段名称

Jas*_* O. 2 python google-app-engine app-engine-ndb google-cloud-datastore

在将数据存储到NDB中时,我想从字符串变量中获取字段的名称(例如,field_name2 ="userid").有办法吗?提前致谢.

class Account(ndb.Model):
     username = ndb.StringProperty()
     userid = ndb.IntegerProperty()

class MainPage():
    field_name2 = 'userid'

    acct = Account.get_key(id).get() 

    acct.username = "Bob"
    acct[**field_name2**] = "001"  ## How can I do something like this?
    acct.put()
Run Code Online (Sandbox Code Playgroud)

ckh*_*han 5

因为ndb.Models行为类似于普通的Python对象,所以您可以使用Python getattr和动态访问字段setattr.

在你的例子中:

    setattr(acct, field_name2, "001")
Run Code Online (Sandbox Code Playgroud)

http://shell.appspot.com上给它一个旋转 参见:如何在Python中动态访问类属性?