As Paolo says, this is not how the choices parameter works in App Engine models. It's perfectly possible to write your own custom Properties that behave however you want, though. Here's an example from the cookbook of one that's similar: EnumProperty.