It can depend on the size of the picts (max AVATARS entity size = 1 MB). So if the pictures are big, you should split the Model.
Else and I think avatar are really small ? Then I'll use your AVATARS (db.Model) and for speed, I'll put the entity into memcache with no timeout. Easier. Regards. On Sep 19, 3:00 am, Tim Hoffman <[email protected]> wrote: > If you only need some of these images some of the time > > I would actually create a AvatarImage class > which has a blob property, image sizes, formats etc.... > > And an AvatarImageReference class > > E.g (note code is not exact, there are typos etc... but you will get > the point) > > class AvatarImageReference > avatar = ReferenceProperty(Avatar,collection_name="images") > image = ReferencePropery(AvatarImage) > image_type = StringProperty # put small, medium, large in this > > And your avatar class as below minus any references to images > > You can then get a all image references defined for the avatar with > > myavatar.images > > fetch each image with > > for i in myavatar.images: > i.image > > or filter images on size etc...... by looking at image type > > That way you wont fetch an image unless you really need it > > Rgds > > T > > On Sep 19, 5:57 am, Larkin2 <[email protected]> wrote: > > > I have a three models for images: > > > class SMALLAVATARS(db.Model,): > > author = db.UserProperty() > > phrase = db.ReferenceProperty(PHRASES) > > file = db.BlobProperty(default=None) > > creationDate = db.DateTimeProperty(auto_now_add=True) > > editDate = db.DateTimeProperty(auto_now=True) > > > class MEDIUMAVATARS(db.Model,): > > author = db.UserProperty() > > phrase = db.ReferenceProperty(PHRASES) > > file = db.BlobProperty(default=None) > > creationDate = db.DateTimeProperty(auto_now_add=True) > > editDate = db.DateTimeProperty(auto_now=True) > > > class LARGEAVATARS(db.Model,): > > author = db.UserProperty() > > phrase = db.ReferenceProperty(PHRASES) > > file = db.BlobProperty(default=None) > > creationDate = db.DateTimeProperty(auto_now_add=True) > > editDate = db.DateTimeProperty(auto_now=True) > > > Is this optimal or would using a single model such as: > > > class AVATARS(db.Model,): > > author = db.UserProperty() > > phrase = db.ReferenceProperty(PHRASES) > > small = db.BlobProperty(default=None) > > medium = db.BlobProperty(default=None) > > large = db.BlobProperty(default=None) > > creationDate = db.DateTimeProperty(auto_now_add=True) > > editDate = db.DateTimeProperty(auto_now=True) > > > be better? > > > Obviously the later is nice and simple, but I'm concerned that when I > > go to actually get the entity in question I will unnecessarily eat up > > more system resources if I only need one of the three images? > > > As always, input is greatly appreciated! > > > -Larkin --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---
