2009-04-05 7 views
1

Je suis assez nouveau dans App Engine et j'essaie de définir un peu de texte dans la base de données du moteur de l'application pour la première fois.App Engine - Problème lors de la définition d'une valeur de propriété Model

Voici mon code:

def setVenueIntroText(text): 
    venue_obj = db.GqlQuery("SELECT * FROM Venue").get() 
    venue_obj.intro_text = text  # Works if I comment out 
    db.put(venue_obj)    # These two lines 

Cela jette une sorte d'exception - je ne peux pas dire ce qu'il est bien à cause de ma configuration django 1.02.

Ok, j'ai donné le code dans la réponse ci-dessous un coup, et cela a fonctionné après la suppression de mes magasins de données, mais je ne suis toujours pas satisfait.

est ici une mise à jour:

J'ai modifié mon code à quelque chose qui ressemble il est logique pour moi. Le getVenueIntroText ne se plaint pas quand je l'appelle - je n'ai aucun élément dans la base de données.

Quand j'appelle setVenueIntroText, il n'aime pas ce que je fais pour une raison quelconque - si quelqu'un connaît la raison pour laquelle, je voudrais vraiment savoir :)

Voici ma dernière tentative:

def getVenueIntroText(): 
    venue_info = "" 
    venue_obj = db.GqlQuery("SELECT * FROM Venue").get() 

    if venue_obj is not None: 
     venue_info = venue_obj.intro_text 

    return venue_info 

def setVenueIntroText(text): 
    venue_obj = db.GqlQuery("SELECT * FROM Venue").get() 
    if venue_obj is None: 
    venue_obj = Venue(intro_text = text) 
    else: 
    venue_obj.intro_text = text 

    db.put(venue_obj) 
+0

Est-ce que c: \ users \ louis \ appdata \ local \ temp \ dev_appserver.datastore existe? Aussi, y a-t-il quelque chose dans Venue ou est-ce vide? –

+0

Euh, vous avez vraiment besoin de comprendre quelle exception vous obtenez. Si votre configuration masque des exceptions, vous avez un problème sérieux. –

Répondre

1

Je pense que cela devrait fonctionner:

def setVenueIntroText(text): 
    query = db.GqlQuery("SELECT * FROM Venue") 
    for result in query: 
    result.intro_text = text 
    db.put(result) 
+0

Je reçois le même résultat avec ceci. mon message d'erreur me dit toujours - mais je pense que c'est masquant la vraie exception ..... grrrr .... –

+0

Je viens de supprimer le datastore temporaire et l'histoire, et j'ai essayé ce code encore une fois, et cela a fonctionné - merci :) –

1

Je pense que le principal problème était que je ne pouvais pas voir les messages d'erreur - vraiment stupide de moi, j'ai oublié de mettre DEBUG = True dans mes réglages. py

Il se trouve que je avais besoin d'un multiligne = True dans mon StringProperty

Django rattrape mes exceptions pour moi.

Questions connexes