gpt4 book ai didi

python - 如何检查 NDB 模型是否有效

转载 作者:行者123 更新时间:2023-12-01 05:22:19 25 4
gpt4 key购买 nike

我有一个模型类,例如:

class Book(ndb.Model):
title = ndb.StringProperty(required=True)
author = ndb.StringProperty(required=True)

我有一些使用这个的代码:

    book = Book()
print book
>> Book()
book_key = book.put()
>> BadValueError: Entity has uninitialized properties: author, title

有没有办法在保存之前检查模型是否有效?

并找出哪个属性无效以及错误类型(例如必需的)。如果您拥有结构化属性(property),那么这将如何运作?

基本上是寻找如何对模型类进行正确的验证......

最佳答案

下面的方法行不通!
我后来遇到了问题。我现在不记得是什么了。

<小时/>

我还没有找到执行此操作的“官方”方法。这是我的解决方法:

class Credentials(ndb.Model):
"""
Login credentials for a bank account.
"""
username = ndb.StringProperty(required=True)
password = ndb.StringProperty(required=True)

def __init__(self, *args, **kwds):
super(Credentials, self).__init__(*args, **kwds)
self._validate() # call my own validation here!

def _validate(self):
"""
Validate all properties and your own model.
"""
for name, prop in self._properties.iteritems():
value = getattr(self, name, None)
prop._do_validate(value)
# Do you own validations at the model level below.

重载__init__来调用我自己的_validate函数。在那里,我为每个属性调用 _do_validate,并最终进行模型级别验证。

为此打开了一个错误:issue 177 .

关于python - 如何检查 NDB 模型是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22081320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com