In Google App Engine, what is the difference between Model.get(key) and Model.get_by_key_name(key_names)?

StackOverflow https://stackoverflow.com/questions/1117104

Question

Does get(key) require the entity key and get_by_key_name(key_names) require the key_name?

Was it helpful?

Solution

There is a difference. An Entity in the datastore is identified by a combination of its Kind, its parent, and its identifier. (link) The "identifier" can either be a number or a string. A Key object contains both the identifier and the parent information. So when you call get(), there is just one argument - the Key object. When you call get_by_key_name, notice that there are 2 arguments - one is the key_name, one is the parent.

So a Key is an object with several parts, whereas a key name is just a string. To make things more confusing, a Key object can be encoded as a string.

OTHER TIPS

Here is official explanation for get() and this one is for get_by_key_name() I hope this helps.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top