python - GAE NDB Expando Model with dynamic Kind -


is possible assign dynamic entity kind expando model? example, want use model many types of dynamic entities:

class dynamic(ndb.expando):     """     handles "post types", such pages, posts, users, products, etc...     """     col = ndb.stringproperty()     parent = ndb.integerproperty()     name = ndb.stringproperty()     slug = ndb.stringproperty() 

right use "col" stringproperty hold kind (like "pages", "posts", etc) , query "col" every time.

after reading docs, stumbled upon @classmethod:

class mymodel(ndb.model):     @classmethod     def _get_kind(cls):          return 'anotherkind' 

does mean can this?

class dynamic(ndb.expando):     """     handles "post types", such pages, posts, users, products, etc...     """     col = ndb.stringproperty()     parent = ndb.integerproperty()     name = ndb.stringproperty()     slug = ndb.stringproperty()      @classmethod     def _get_kind(cls):         return 'anotherkind' 

but how dynamically replace 'anotherkind'? can return col?

thanks!

i don't know if can that, sounds dangerous, , gae updates might break code.

using subclasses seems safer alternative. this:

class dynamic(ndb.expando):     parent = ndb.integerproperty()     name = ndb.stringproperty()     slug = ndb.stringproperty()  class pages(dynamic):     pass  class posts(dynamic):     pass  class users(dynamic):     pass 

you try using polymodel.

we need know more application , trying accomplish give more specific advice.


Comments

Popular posts from this blog

serialization - Convert Any type in scala to Array[Byte] and back -

matplotlib support failed in PyCharm on OSX -

python - Matplotlib: TypeError: 'AxesSubplot' object is not callable -