Google Appエンジンでurlfetchを使用して私のコードエラーはどこにありますか

StackOverflow https://stackoverflow.com/questions/4094896

質問

これは私のコードです:

class save(BaseRequestHandler):
    def get(self):
        counter = Counter.get_by_key_name('aa-s')
        counter.count += 1
        url = "http://www.google.com"
        result = urlfetch.fetch(url)

        if result.status_code == 200:
            counter.ajax = result.content
            counter.put()

        self.redirect('/')

エラーは次のとおりです。

Traceback (most recent call last):
  File "D:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 511, in __call__
    handler.get(*groups)
  File "F:\ss\Task Queue\main.py", line 48, in get
    counter.ajax = result.content
  File "D:\Program Files\Google\google_appengine\google\appengine\ext\db\__init__.py", line 542, in __set__
    value = self.validate(value)
  File "D:\Program Files\Google\google_appengine\google\appengine\ext\db\__init__.py", line 2453, in validate
    raise BadValueError('Property %s is not multi-line' % self.name)
BadValueError: Property ajax is not multi-line
INFO     2010-11-04 08:24:29,905 dev_appserver.py:3283] "GET /save HTTP/1.1" 500 -

だから私はエラーを見つけることができません、

あなたはしました。

ありがとう

役に立ちましたか?

解決

結果をcounter.ajaxに保存しようとしています。これは、multiline = trueを持たないstringpropertyです。 「ajax」の定義でmultiline = trueを設定するか、textproperty()に置き換えます。後者はほぼ間違いなく正しい答えです - テキストプロパティはより長くなり、インデックス化されていません。

他のヒント

エラーはカウンターモデルにあります。

「Ajax」は、マルチラインストリングプロパティである必要があります。を参照してください タイプとプロパティクラスのドキュメント.

あなたはやりたいです:

ajax = db.StringProperty(multiline=True)

また、DB.StringPropertyは500文字以下の文字列にしか使用できないことに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top