Kwame
Kwame

Reputation: 1097

Appengine error object has no attribute '_key'

I have a GAE database entity that looks like this:

class Notification(db.Model):

    alert = db.StringProperty()
    type = db.StringProperty()
    status = db.StringProperty(default="unread", choices=set(["unread", "read"])) 
    created  = db.DateTimeProperty(auto_now_add=True)
    modified = db.DateTimeProperty(auto_now=True)
    entity = db.StringProperty()
    record = db.ReferenceProperty(model.RecordModel)
    actor = db.ReferenceProperty(model.Profile)
    account = db.ReferenceProperty(model.Account)

... and I create an entity like so:

notify = model2.Notification(account=account)
notify.alert = message
notify.type = "reminder"
notify.actor = actor
notify.record = record
notify.put() 

This call raises an error *'Notification' object has no attribute '_key'*

nquery = db.Query(model2.Notification).filter('account =', self.session.account).order('-created')            
for n in nquery:
  try:
    _dict = {}
    _dict['serverID'] = str(n.key()) #- raises error! 

Upvotes: 0

Views: 140

Answers (2)

Kwame
Kwame

Reputation: 1097

I think I've figured it out! The "entity" property in my Notification class is causing some sort of naming conflict in python appengine. Changing the name removes the "error object has no attribute '_key'" error. Go figure!

Upvotes: 0

Shay Erlichmen
Shay Erlichmen

Reputation: 31928

try:

nquery = Notification.all().filter('account =', self.session.account).order('-created') 

Upvotes: 1

Related Questions