GAEは私を夢中にさせます。
私は次のものを持っています:
if id_puertas[x]:
puerta = Puerta.get_by_id(int(id_puertas[x]))
puerta.ubicacion = ubicacion_puertas[x],
puerta.ancho = float(ancho_puertas[x]),
puerta.marco = float(marco_puertas[x]),
puerta.alto = float(alto_puertas[x]),
puerta.giro = giro_puertas[x],
puerta.condena = True if condena_puertas[x] == 'Si' else False,
puerta.extra = extra_puertas[x]
else:
puerta = Puerta(
medicion = medicion.key().id(),
ubicacion = ubicacion_puertas[x],
ancho = float(ancho_puertas[x]),
marco = float(marco_puertas[x]),
alto = float(alto_puertas[x]),
giro = giro_puertas[x],
condena = True if condena_puertas[x] == 'Si' else False,
extra = extra_puertas[x]
)
puerta.put()
id_puerta
同じフォームが数字または空白のいずれかで送信されます。数値の場合は、データストア内のエンティティを更新します。空白の場合、新しいエンティティを作成します。
作成は完璧に機能します。
しかし、同じフォームを (変更なしでも) 再送信すると、最初の割り当てで更新が停止します。
ubicacion_puertas[x]
は文字列 (更新時よりも作成時と同じ文字列)puerta.ubicacion
ですがStringProperty,
、次のエラーが表示されます。
BadValueError: Property ubicacion must be a str or unicode instance, not a tuple
デバッガーでは、それubicacion_puertas[0]
が u'Salon' であることがはっきりとわかります。だから私はこのエラーを理解できません。