5

会場が次のとおりであると仮定します。

from mongoengine import *
from mongoengine_extras.fields import  AutoSlugField
class Venue(Document):
    name = StringField(required=True)
    venue_slug = AutoSlugField()

名前に基づいて、すべての会場スラッグ フィールドを更新したいと考えています。私は試します:

for v in Venue.objects():
    v(venue_slug = str(v.name)).update()

しかし、私は得る:

v(venue_slug = str(v.name)).update()
TypeError: Error when calling the metaclass bases
'Venue' object is not callable

私の更新機能は正しいですか?よくわからない場合は、更新AutoSlugField()の例を書いていただけますか?StringField()

4

1 に答える 1

11

コードが正しくありません。試す:

for v in Venue.objects():
    v.update(set__venue_slug=str(v.name))

ドキュメントを参照してください: http://docs.mongoengine.org/guide/querying.html#atomic-updates

于 2013-11-13T08:10:26.503 に答える