2010-07-26 4 views
2

Je suis coincé avec ce problème que j'ai fait un tableau HTML, mais je ne peux pas le lire avec Python. Est-il même possible de le faire dans App Engine? J'ai lu que c'était possible en PHP.Comment gérer les tableaux HTML avec App Engine Python?

Voici le code html:

<label for="hashtags">Hashtags: </label><br/> 
{% for hashtag in stream.hashtags %} 
    <input type="text" value="{{hashtag}}" name="hashtags[]" id="hashtags" class="text ui-widget-content ui-corner-all" /> 
{% endfor %} 

Voilà comment je suis en train d'essayer de lire le tableau HTML:

newHashTags = self.request.get('hashtags[]') 
for newHashTag in newHashTags: 
    stream.hashtags.append(newHashTag) 

Ceci est la variable post quand je débogage.

MultiDict: MultiDict([('streamid', '84'), ('name', 'Akteurs'), ('description', '#stream'), ('hashtags[]', '#andretest'), ('hashtags[]', '#saab')]) 

Répondre

5

Vous n'avez pas besoin d'inclure le [] à la fin du nom d'un champ que vous souhaitez traiter comme une liste ou un tableau, qui est un peu de magie spécifique à PHP. Au lieu de cela, juste le nom du champ hashtags et dans votre gestionnaire de requêtes faire pour obtenir une liste de hashtags de la demande:

newHashTags = self.request.get('hashtags', allow_multiple=True) 

L'argument allow_multiple=True fera méthode get retourner une liste de toutes les hashtags valeurs dans la demande. Voir the relevant documentation pour plus d'informations.

Vous pouvez également éviter la boucle for en faisant quelque chose comme ceci:

newHashTags = self.request.get('hashtags', allow_multiple=True) 
stream.hashtags.extend(newHashTags) 
+0

réponse parfaite. Merci. –

Questions connexes