2009-04-17 10:30:03
Comments[0]
我记得google.appengine.ext.db的djangoforms里面的确是有个类叫做ModelMultipleChoiceField,但是现在已经没有了,不过ModelChoiceField还在。我目前的问题是想建立由模型生成的表单,通过checkbox提交这个模型中被选择的数据,如果checked那么将所有数据提交到一个模型的ListPropery属性形成一个key的列表,否则的话就不提交。
if request.method == 'POST':
choosed_players_key = []
post_players = request.POST.getlist('player')
choosed_players = models.Players.get(post_players)
for player in choosed_players:
choosed_players_key.append(player.key())
players_list.players = choosed_players_key
players_list.put()
players_list是一个包含ListProperty的模型的实例,它的这个属性是由db.Key构成的,但是当我直接让:
players_list.players = request.POST.getlist('player')
的时候却发生了错误,players_list.players这个db.Key竟然是Key.from_path()生成的列表,所以后来改成先通过request.POST.getlist('player')获得所有player对象,然后在通过对象获得对象的key,再把这些key形成列表,最后再把这个列表赋值给players_list的players属性,这样竟然就可以了。