Use a property instead of key_name to hold subject name. This makes Message.ToEvent() do an additional datastore read, but opens up the ability to add more subject indexes.
This commit is contained in:
@@ -89,14 +89,15 @@ class Client(db.Model):
|
|||||||
|
|
||||||
|
|
||||||
class Subject(db.Model):
|
class Subject(db.Model):
|
||||||
# key_name=name
|
|
||||||
|
name = db.StringProperty(required=True)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def FindOrCreate(cls, name):
|
def FindOrCreate(cls, name):
|
||||||
subject = cls.get_by_key_name(name)
|
subjects = cls.all().filter('name =', name).fetch(1)
|
||||||
if subject:
|
if subjects:
|
||||||
return subject
|
return subjects[0]
|
||||||
subject = cls(key_name=name)
|
subject = cls(name=name)
|
||||||
subject.put()
|
subject.put()
|
||||||
return subject
|
return subject
|
||||||
|
|
||||||
@@ -205,7 +206,7 @@ class Message(db.Model):
|
|||||||
'event_type': 'message',
|
'event_type': 'message',
|
||||||
'id': self.key().id(),
|
'id': self.key().id(),
|
||||||
'sender': str(Message.sender.get_value_for_datastore(self)),
|
'sender': str(Message.sender.get_value_for_datastore(self)),
|
||||||
'subject': self.parent_key().name(),
|
'subject': self.parent().name,
|
||||||
'created': self.created,
|
'created': self.created,
|
||||||
'message': self.message,
|
'message': self.message,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user