0

我有一个函数可以从表单中获取图像,并将其与用户名一起放入数据库中。所以,这是我的数据库:

class Imagedb(db.Model):
    name = db.StringProperty(required = True)
    image = db.BlobProperty()

这是写入数据库的代码:

class Change_Profile_Image(MainHandler):
    def get(self):
        if self.user:
            self.render('change_profile_image.html', username = self.user.name, firstname=self.user.first_name)
        else:
            self.render('change_profile_image.html')

    def post(self):
        imagedb = Imagedb(name = self.user.name)
        imageupl = self.request.get("img")
        imagedb.image = db.Blob(imageupl)
        imagedb.put()
        self.redirect('/profile')

任何人,它都很棒。除了一件事。我想要完成的只是存储一张个人资料图片。最终发生的事情是这样的:

假设我是用户管理员。我会上传一张显示图片,该图片显示在个人资料中。生病上传另一个,那个显示。很酷,除了我的数据库中有 2 个具有 name = admin 属性的对象。我想编辑这个...

    def post(self):
        imagedb = Imagedb(name = self.user.name)
        imageupl = self.request.get("img")
        imagedb.image = db.Blob(imageupl)
        imagedb.put()
        self.redirect('/profile')

这样我就可以将图像发布到数据库中,但如果存在,则会被覆盖。有人可以帮我吗?我对 python 和应用程序引擎比较陌生。

如果有不清楚的地方,请告诉我。

4

1 回答 1

1

您想将 Imagedb 实体的键设置为“名称”。本质上,您不需要名称字段,但您会像这样实例化它

imagedb = Imagedb(key_name = self.user.name)

键是所有实体的必填字段。通过使用您的用户名作为键,这意味着每次您引用给定键时,它都是同一个实体。

于 2012-07-28T05:59:46.870 回答