2009-05-10 2 views
0

Платформа: Джанго 1.0, Google App Engine, приложение-двигатель-патч, Python 2.5.4выбор недвижимости в Google App Engine

я Тринг использовать выбор атрибутов, как я всегда использую в Джанго сайте

STATUS_CHOICES = ((1, _('Yet To Start')), (2, _('Running')), (3, _('Paused')), (4, _('Completed')), (5, _('Cancelled')), (6, _('Error')),) 

class Campaign(db.Model): 
    name = db.TextProperty() 
    status = db.IntegerProperty(choices=STATUS_CHOICES,default=2) 

теперь, как я переехал в приложение-движка я не вижу, это работает ...

я получаю

BadValueErr или

Состояние недвижимости 3; должен быть одним из ((1, u'Yet To Start)), (2, u'Running '), (3, u'Paused'), (4, u'Completed '), (5, u «Отменено»), (6, u'Error '))

Как я могу решить эту проблему?

ответ

1

This is a documented problem, что не будет разрешено. Проще говоря, вы не можете сделать это при использовании GAE.

Гвидо говорит следующее при закрытии выше билета:

Мне очень жаль, но я должен закрыть это как недействительные.

Определение параметра выбора App для параметра класса db.Property равно , отличному от определения Django. См http://code.google.com/appengine/docs/datastore/propertyclass.html#Property

Я понимаю, что это может вызвать проблемы, когда вы пытаетесь создать форму из модели, но решение переопределить поля формы, используя собственный виджет и проходящего список желаемых вариантов для виджет. (Там пример этого в Ритвельдом, в/views.py Просмотр Кода, класс SettingForm.)

0

Как говорит Паоло, это не то, как параметр выбора работает в модели App Engine. Однако вполне возможно написать собственные собственные свойства, которые ведут себя, как бы вы ни хотели. Вот пример из поваренной книги того, что похоже: EnumProperty.

 Смежные вопросы

  • Нет связанных вопросов^_^