WTForms没有将正确的数据类型保存到数据存储

时间:2019-05-16 14:04:37

标签: python google-cloud-datastore

我有一个使用WTForms和Google Cloud Datastore的Python Flask应用程序。无论使用哪种WTForms字段类型,该值都保存为字符串。

我研究了在python flask中定义模型的标准方法,但认为仅需要WTForms模型声明即可。

模型

Project_Description = TextAreaField('Project Description')

模板

{{ form.Project_Description (rows='10',
  class_="govuk-textarea govuk-!-width-two-thirds",)
}}

数据存储区创建/更新功能

def update(self, data, id=None):
    if id:
        key = client.key('ProjectDetails', int(id))
    else:
        key = client.key('ProjectDetails')

    entity = datastore.Entity(key=key, exclude_from_indexes=('Project_Description'))
    entity.update(data)
    client.put(entity)

    return Datastore_Client().from_datastore(entity)

我正在从索引中删除ProjectDescription,因为当我确实将其保存为文本或Blob时,我不希望字节数的下限。当我提交表单时,数据存储为标准字符串,而不是文本或Blob。我希望另存为blob,但不确定如何保存。

1 个答案:

答案 0 :(得分:0)

对于Cloud Datastore库,如Entity concepts文档中所述,任何未索引文本的大小限制为1MB-89字节。另外,如果您将项目描述存储为bytes而不是python 3中的str,则该值将存储为blobl