2009-09-17 9 views
2

J'ai ce modèle datastoreGAE - Comment puis-je modifier/mettre à jour le magasin de données en python

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

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

Comment modifier la valeur de nom_tâche? dire que j'ai Task1 et je veux changer pour Task1 projet

Répondre

1

Étant donné une instance t de Task (par exemple une opération de get sur le db) vous pouvez effectuer la modification que vous voulez par exemple par t.taskname = t.taskname + '-project' (si ce que vous voulez est "ajouter '-project' à ce qui était là avant.) Finalement, vous avez également probablement besoin de .putt retour dans le magasin, bien sûr (mais si vous faites plusieurs changements, vous n'avez pas besoin de le mettre !. retour après chaque changement - que lorsque vous avez terminé le changer -)

+0

Salut! Merci pour votre réponse. J'utilise ce code mais toujours rien ne se passe. taskkey = self.request.get ("taskkey") taskid = Task.get (taskkey) requête = db.GqlQuery ("SELECT * FROM Tâche Où __key__ =: taskid", taskid = taskid) si query.count()> 0: task = Tâche() task.taskname = "task1-project" task.put() – gene

+2

Votre code est non formaté (modifiez votre réponse pour afficher un code bien formaté), mais ce que vous êtes évidemment faire est de générer un objet de tâche complètement nouveau et sans rapport (avec une clé complètement nouvelle et sans rapport, bien sûr) et de le mettre - cela ne modifiera évidemment pas l'original, mais votre affirmation que "rien ne se passe" est gravement faux (vérifiez sur votre tableau de bord !!!), vous avez maintenant un plus y du type Tâche (exactement comme vous l'avez spécifié). Pourquoi ne modifiez-vous pas votre original comme je l'ai dit, mais en faites un entièrement nouveau?!?!? –

-1

Probablement la plus simple est d'utiliser la console d'administration localement il est:

http://localhost:8080/_ah/admin 

et si vous avez. téléchargé, c'est le tableau de bord:

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

Here's un lien:

2

oups désolé, voici le code formaté:

taskkey = self.request.get ("taskkey")
taskid = Task.get (taskkey)
requête = db .GqlQuery ("SELECT * FROM tâche Où key =: taskid", taskid = taskid)

si query.count()> 0:
task = tâche()
task.taskname = « Task1-projet "
task.put (

par la façon dont je l'obtiens maintenant. J'ai changé la tâche = Task() en tâche = query.get() et cela a fonctionné.

Merci de votre aide.

Questions connexes