本文介绍了App引擎NDB:如何访问属性的详细名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有这样的代码:

  class A(ndb.Model):
prop = ndb.StringProperty (verbose_name =Something)

m = A()
m.prop =字符串值

现在当然如果我打印m.prop,它会输出一个字符串值,而实际上它是一个StringProperty实例。所以verbose_name不能以正常方式访问,即 m.prop._verbose_name

我读取了代码并找到了访问它: m._properties [prop] ._ verbose_name ,它的工作原理,但它看起来很诡异o_o。

所以告诉我,有没有另一种方法要做到这一点?

注意:我在谈论NDB API,而不是旧版本。

解决方案

使用类属性: A.prop._verbose_name 。或 m .__ class __。prop._verbose_name


suppose I have this code:

class A(ndb.Model):
    prop = ndb.StringProperty(verbose_name="Something")

m = A()
m.prop = "a string value"

Now of course if I print m.prop, it will output "a string value" while in fact it's a StringProperty instance. So verbose_name can't be accessed the "normal" way, i.e m.prop._verbose_name.
I read the code and found a way to access it: m._properties["prop"]._verbose_name, it works, but it looks hacky o_o.
So tell me, is there another way to do it?
Note: I'm talking about the NDB API, not the old one

解决方案

Use a class attribute: A.prop._verbose_name. Or m.__class__.prop._verbose_name.

这篇关于App引擎NDB:如何访问属性的详细名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 11:42