Je suis en train de traduire une application de Datastore vers ndb et j'ai rencontré un problème dans la routine d'importation xml. Le problème est que je ne suis pas en mesure de déterminer par programme si une propriété d'une classe ndb.model est une propriété à plusieurs valeurs ou non.Comment déterminer par programme si la propriété ndb est multivaleur
Je suppose que cela est dû au manque de compétences de base de Python puisque le code que j'ai trouvé jusqu'à présent montre que la valeur est "visible". Je ne suis donc pas capable de l'attraper. S'il vous plaît aider.
from google.appengine.ext import ndb
class House(ndb.Model):
name = ndb.StringProperty()
rooms = ndb.StringProperty(repeated=True)
print 'Properties:'
for p in House._properties:
print getattr(House,p)
print '\nRepeated:'
for p in House._properties:
print getattr(getattr(House,p),'repeated',None)
Il en résulte les éléments suivants:
Properties:
StringProperty('rooms', repeated=True)
StringProperty('name')
Repeated:
None
None
OK, j'ai regardé le code source et il y a un attribut dans la classe Property nommé'_'repeated 'qui est accessible. Cela fonctionne mais j'ai l'intuition que le "_" signifie qu'il n'est pas destiné à un accès extérieur. –