5

假设地点是:

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

我想根据名称更新我所有的venue_slug 字段。我尝试:

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 回答