db.py
from google.appengine.ext import blobstore from google.appengine.ext import db from google.appengine.ext.db import polymodel #頁面模型 class Pagedb(db.Model): author = db.UserProperty(auto_current_user_add = True) pagetitle = db.StringProperty() title = db.StringProperty() content = db.TextProperty() date = db.DateTimeProperty(auto_now_add=True) previous = db.SelfReferenceProperty() isnew = db.BooleanProperty() tag = db.StringListProperty() #複製方法 @staticmethod def copy(pagedb): newPagedb = Pagedb(parent = pagedb.parent()) newPagedb.author = pagedb.author newPagedb.pagetitle = pagedb.pagetitle newPagedb.title = pagedb.title newPagedb.content = pagedb.content newPagedb.previous = pagedb.previous newPagedb.isnew = pagedb.isnew newPagedb.tag = pagedb.tag return newPagedb class Userdb(db.Model): user = db.UserProperty(auto_current_user_add = True) tags = db.StringListProperty() css = db.TextProperty() css_filename = db.StringProperty() cssurl = db.LinkProperty() using_way = db.StringProperty(default = 'default') using_way_default = db.StringProperty(default = 'default') sitetitle = db.StringProperty() def get_css(self): if self.using_way == "link": return (self.cssurl, None) elif self.using_way == 'file': return ('/usercss/' + self.user.nickname() +'.css', None) else: return ('default', self.using_way_default) class Filedb(polymodel.PolyModel): uploader = db.ReferenceProperty(Userdb) file = blobstore.BlobReferenceProperty()