5

Załóżmy, że mam tego kodu:App engine NDB: jak uzyskać dostęp do verbose_name od nieruchomości

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

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

Teraz oczywiście jeśli mogę wydrukować m.prop, to wyświetli „ciąg znaków”, podczas gdy w rzeczywistości jest to Instancja StringProperty. Tak więc nazwa "verbose_name" nie może być dostępna w "normalny" sposób, tj. m.prop._verbose_name.
Przeczytałem kod i znalazłem sposób, aby uzyskać do niego dostęp: m._properties["prop"]._verbose_name, działa, ale wygląda na hacky o_o.
Powiedz mi, czy jest inny sposób na zrobienie tego?
Uwaga: mówię o interfejsie API NDB, a nie o starym

+1

Nie wydaje mi się zbyt hackowaty, jeśli faktycznie trzeba sprawdzić nazwę podczas użytkowania, a nie deklaracji. – Amber

Odpowiedz

7

Użyj atrybutu klasy: . Lub m.__class__.prop._verbose_name.

+0

m .__ klasa __. Prop.verbose_name u mnie działało – matcheek

Powiązane problemy