【问题标题】:choice property in google app engine谷歌应用引擎中的选择属性
【发布时间】:2009-05-10 17:13:21
【问题描述】:

平台:django 1.0、google app engine、app-engine-patch、python 2.5.4

我正在尝试使用我一直在 django 网站中使用的选项属性

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)

现在我已经转移到应用程序引擎,我看不出这是有效的......

我得到了一个

错误值错误

属性状态为 3;必须是其中之一 ((1, u'尚未开始'), (2, u'Running'), (3, u'Paused'), (4, u'已完成'), (5, u'已取消'), (6, u'错误'))

我该如何解决这个问题?

【问题讨论】:

    标签: django google-app-engine choicefield


    【解决方案1】:

    This is a documented problem 将无法解决。简单来说,在使用 GAE 时不能这样做。

    Guido 在关闭上述票证时说:

    非常抱歉,我必须将其视为无效关闭。

    db.Property 类的选择参数的 App Engine 定义是 不同于 Django 的定义。看 http://code.google.com/appengine/docs/datastore/propertyclass.html#Property

    我知道,当您尝试从 模型,但解决方案是使用自定义小部件覆盖表单字段和 将所需选择的列表传递给小部件。 (有一个这样的例子 Rietveld,在 codereview/views.py 中,类 SettingForm。)

    【讨论】:

      【解决方案2】:

      正如 Paolo 所说,这不是选择参数在 App Engine 模型中的工作方式。不过,完全有可能编写自己的自定义属性,这些属性的行为可以随心所欲。以下是类似食谱中的一个示例:EnumProperty

      【讨论】:

        猜你喜欢
        • 2013-02-26
        • 1970-01-01
        • 1970-01-01
        • 2016-12-01
        • 2011-07-11
        • 2011-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多