0

コンテクスト:

私のモデルクラスは基本クラスを継承しています:

class BaseModel(ndb.model):
  # commom fields and methods

class SpecificModel(BaseModel):
  # specific fields and methods

問題:

appenginebulkuploaderサービスを使用してSpecificModelエンティティをエクスポートしたいと思います。

構成ファイル(data_loader.py)を定義しました:

import sys
sys.path.append('.') ## this is to ensure that it finds the file 'models.py'
from google.appengine.ext import ndb
from google.appengine.tools import bulkloader
from models import *

class SpecificModelExporter(bulkloader.Exporter):
  def __init__(self):
    bulkloader.Exporter.__init__(self, 'SpecificModel',
                                 [('fieldOne', str, None),
                                  ('fieldTwo', str, None)
                                 ])

    exporters = [ SpecificModelExporter ]

次のコマンドを使用してデータをダウンロードします。

  appcfg.py download_data --config_file=data_loader.py --filename=data.csv --kind=SpecificModel --url=http://url.appspot.com/_ah/remote_api

データをダウンロードしようとすると、次のエラーが発生します。

google.appengine.ext.db.KindError: No implementation for kind 'SpecificModel'

手がかりはありますか?

4

1 に答える 1

2

ソースコードを見てください:

モデルはGetImplementationClass経由で検索されます

implementation_class = db.class_for_kind(kind_or_class_key)

ただし、モデルのレジストリには、定義したモデルdbは含まれません。ndb同様のレジストリが に作成されndb.Model._kind_mapdb定義したモデルはそこにはありません。

注:私が知る限りndb、バルク ローダーまたは同等のバルク ローダーでのサポートを求める対応する問題/機能リクエストはありませんndb。提出してスターを付ける価値があるかもしれません。

于 2012-11-27T02:47:47.553 に答える