如何在GAE LinkProperty中存储空值?

时间:2014-10-04 19:20:48

标签: google-app-engine google-cloud-datastore

默认情况下,LinkProperty()为空。但是,我们假设我提交了一个表单,该表单使用属性LinkProperty()在DB字段中存储站点链接。到目前为止,此工作正常。

接下来,我想通过重新提交带有空站点链接的表单来删除存储在数据库中的链接。这时,我得到数据库错误如下: “BadValueError:链接不能为空。”

任何人都可以帮忙吗?代码如下。

###Database
class MyDatabase(db.Model):
    site = db.LinkProperty()

###Trying to store form data in the database

mydb_obj = MyDatabase.get_or_insert('abc') 
#above line works fine

mydb_obj.site = self.request.get('form_site') #works fine. 
#Above form_site is read from form submission. It can be 'www.google.com' or it can be
#empty as in ''

mydb_obj.put() #I GET ERROR WHEN form_site = ''. 
#"BadValueError: link must not be empty"

2 个答案:

答案 0 :(得分:0)

我没有尝试复制此错误。有可能当链接输入为空时,请求的值为None。也许这可能有用:

mydb_obj.site = self.request.get('form_site')
if mydb_obj.site is None:
    mydb_obj.site = '' # value is empty string instead of None.

答案 1 :(得分:0)

以下作品

mydb_obj.site = self.request.get('form_site')
if not mydb_obj.site:
  mydb_obj.site = None
mydb_obj.put()