最初に私のdjangoモデルは次のようになりました:
class List(Document):
owner = ReferenceField('User')
name = StringField()
users = ListField(ReferenceField('User'))
created_at = DateTimeField(default=datetime.datetime.now)
新しいフィールド is_cancelled を追加すると、次のようになります。
class List(Document):
owner = ReferenceField('User')
name = StringField()
users = ListField(ReferenceField('User'))
created_at = DateTimeField(default=datetime.datetime.now)
is_cancelled = BooleanField(default = False)
私はdjango mongodb ORMにmongoengineを使用しています。しかし今、フィルタークエリを作成したいとき:
List.objects.filter(is_cancelled=False)
returns []
django オブジェクトを使用して、すべての is_cancelled フィールドを False にします。
for x in List.objects.all():
x.is_cancelled = False
x.save()
しかし、上記のクエリに対してまだ空のリストを取得しています。私はdjangoオブジェクトのis_cancelledファイルを探していますが、is_cancelled = Falseが表示されます
l = List.objects.all()[0]
l.is_cancelled
間違い
しかし、mongodb シェルから見ると。is_cancelled としてフィールドはありません。
db.list.find()
{ "_cls" : "List", "_id" : ObjectId("4e8451598ebfa80228000000"), "_types" : [ "List" ],
"created_at" : ISODate("2011-09-29T16:24:28.781Z"), "name" : "listname", "users" : [
{
"$ref" : "user",
"$id" : ObjectId("4e79caf78ebfa80c00000001")
}, {
"$ref" : "user",
"$id" : ObjectId("4e79e4df8ebfa80b64000001")
}, {
"$ref" : "user",
"$id" : ObjectId("4e7aeb898ebfa80b64000001")
}, {
"$ref" : "user",
"$id" : ObjectId("4e79ce028ebfa80c00000004")
} ] }
このクエリを修正するにはどうすればよいですか