次のように、デフォルトの高さと幅を定義する方法をユーザーに提供したいImgPropertyを作成しています。
class MyModel(ndb.Model):
img = ImgProperty(height=32, width=32)
その後:
m = MyModel(img='https://example.com/my-photo')
次に、画像は指定された高さ、幅の値にサイズ変更されたデータベースに保存されます。ImgProperty自体はBlobPropertyをサブクラス化します。これらの2つの属性をProperty._attributesに追加して、機能させることはできますか?それともそれを台無しにしない方がいいですか?私がそれを行うために見るもう1つの方法は、フィールドの高さと幅を持つ中間モデルを作成し、__init__
ImgPropertyにメソッドを追加することです。このようなもの:
class ImgModel(ndb.Model):
height = ndb.IntegerProperty()
width = ndb.IntegerProperty()
class ImgProperty(ndb.BlobProperty):
def __init__(self, **kwds):
super(ImgProperty, self).__init__(ImgModel, **kwds)
この方法でのような定義が可能かどうかはわかりませんimg = ImgProperty(height=32, width=32)
。