Google app engine 如何在GAE LinkProperty中存储空值?

Google app engine 如何在GAE LinkProperty中存储空值?,google-app-engine,google-cloud-datastore,Google App Engine,Google Cloud Datastore,默认情况下,LinkProperty()为空。但是,假设我提交了一个表单,该表单使用LinkProperty()属性在DB字段中存储站点链接。到目前为止,这一切都很好 接下来,我想通过重新提交带有空站点链接的表单来删除数据库中存储的链接。此时,我得到如下数据库错误: “BadValueError:链接不能为空。” 有人能帮忙吗?代码如下 ###Database class MyDatabase(db.Model): site = db.LinkProperty() ###Trying

默认情况下,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"

我没有试图复制这个错误。当链接输入为空时,请求的值可能为
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.
以下作品

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

我不知道为什么对这个问题投了反对票。如果有人能解释一下,这将有助于我纠正问题并得到答案:-)。谢谢。你应该发布你的代码,这样我们才能更好地理解错误的背景。另外,如果您的应用程序是新的,请考虑使用NDB而不是DB:谢谢!添加了代码。NDB现在不是一个选项。谢谢。我尝试了上面的方法,但是我得到了同样的错误。“BadValueError:链接不能为空。”看来空值根本不能存储在LinkProperty()中?