A key name is not the same as a key.

You need to use FooEntity.get_by_key_name to get a named entity.
Similarly, you need to set the key name at construction time, using
the key_name argument to the constructor.

On Dec 25, 10:25 pm, gmalquestion <adatgyu...@gmail.com> wrote:
> Hi,
>
> Here's the scenario:
>
> I want to update the data on appengine by either modifying existing
> model instances or adding new ones.
>
> The uploaded data is in a format similar to this:
>
> A00000011,<data fields>
> A00000022,...
> A00000033,...
>
> so the first column is a unique id and the rest is more data. My idea
> was to fetch all model instances with the given IDs, update those
> which exist already and add the others.
>
> Here's the query when the data is posted:
>
>       keys = []
>       for row in data:
>           keys.append(db.Key(row["first_column"]))
>
>       result = MyModel.get(keys)
>
> the problem is appengine says to the db.Key(...) part that
>
>   File "c:\Program Files\Google\google_appengine\google\appengine\api
> \datastore_
> types.py", line 169, in __init__
>     raise datastore_errors.BadKeyError('Invalid string key %s.' %
> encoded)
> BadKeyError: Invalid string key A00000011.
>
> It is true a model with this key does not exists yet in the db, but I
> will set it as key_name when the model instance is created, since it
> is unique, so why can't I use it for querying models?
>
> How can I convert these unique keys into model keys for the query?
> Can't I use a unique string as key for querying the db when that
> string is not assigned to an existing model instance yet?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to