2009-09-17 91 views
2

数据存储我有这样的数据存储模型GAE - 如何编辑/更新蟒蛇

class Project(db.Model) 
projectname = db.StringProperty() 
projecturl = db.StringProperty() 

class Task(db.Model) 
project = db.ReferenceProperty(Project) 
taskname= db.StringProperty() 
taskdesc = db.StringProperty() 

如何编辑TASKNAME的价值?说我有独立写作,我想将其更改为TASK1项目

回答

1

给定一个实例的Taskt(例如,从上db一些get操作),你可以执行你想例如变更通过t.taskname = t.taskname + '-project'(如果你想要的是“追加'-project'之前的任何东西)。最后,你也可能需要.putt回到商店,当然(但如果你做了多个更改,你不需要把它!回来后每一个变化 - 只有当你做改变它 - )

+0

嗨!感谢您的回答。我使用这段代码,但仍然没有任何反应。 taskkey = self.request.get( “taskkey”) 的taskid = Task.get(taskkey) 查询= db.GqlQuery( “SELECT * FROM任务WHERE __key__ =:任务id”,的taskid =的taskid) 如果query.count()> 0: task = Task() task.taskname =“task1-project” task.put() – gene 2009-09-17 03:36:42

+2

您的代码是未格式化的(编辑您的答案以显示格式良好的代码),但是您显然这样做是为了产生一个全新的,无关的任务对象(当然还有一个全新的和不相关的关键字)并且将其放在一起 - 这显然不会改变原来的对象,但是你断言“没有任何反应”是严重错误(检查你的仪表板!!!),你现在有一个更多的实体任务种类(完全按照您的指定)。你为什么不像我说的那样改变原来的一个,而是改变一个全新的呢?!?!? – 2009-09-17 05:06:27

-1

也许最简单的方法是使用管理控制台在本地是:

http://localhost:8080/_ah/admin 

,如果你已经。上传它,它的仪表板:

http://appengine.google.com/dashboard?&app_id=****** 

Here's的链接:

2

哎呀对不起,这里是格式化的代码:

taskkey = self.request.get( “taskkey”)
的taskid = Task.get(taskkey)
查询=分贝.GqlQuery( “SELECT * FROM任务,其中关键=:任务id”,任务id =任务id)

如果query.count()> 0:
任务=任务()
task.taskname =“TASK1项目“
task.put( )

顺便说一句我现在明白了。我将task = Task()更改为task = query.get(),它工作。

感谢您的帮助。