2017-09-29 7 views
2
私はmongoengineに

MongoengineはReferenceField値

私のモデルをReferenceField値を削除したい

を削除します。

class User(db.Document): 
    name = StringField(required=True) 
    last_name = StringField() 
    address_ref = ReferenceField(Address) 



class Adress(db.Document): 
    street = StringField() 
    city = StringField() 
    state = StringField() 

残念ながらmongengineドキュメントインチ未設定に関する情報はあまりありません。だから私はこの

User.update(id=ObjectId("59ca38c5d1174d081c9bcaca")).unset(address_ref="").first() 

ような何かをしようとしているが、私はこの効果(アマンダadress_ref = "")を取得したいエラー

TypeError: update() missing 1 required positional argument: 'self' 

マイドキュメント

{ 
    "_id": { 
     "$oid": "59ca38c5d1174d081c9bcaca" 
    }, 
    "name": "Amanda", 
    "last_name": "Barow", 
    "address_ref": { 
     "$oid": "59ca38c9d1174d081c9bcad7" 
    } 
}, 
{ 
    "_id": { 
     "$oid": "59ca38c4d1174d081c9bcac9" 
    }, 
    "name": "Larry", 
    "last_name": "Denor", 
    "address_ref": { 
     "$oid": "59c8f34200fc624a0168c4bc" 
    } 
} 

を持って

{ 
    "_id": { 
     "$oid": "59ca38c5d1174d081c9bcaca" 
    }, 
    "name": "Amanda", 
    "last_name": "Barow", 
    "address_ref": "" 
}, 
{ 
    "_id": { 
     "$oid": "59ca38c4d1174d081c9bcac9" 
    }, 
    "name": "Larry", 
    "last_name": "Denor", 
    "address_ref": { 
     "$oid": "59c8f34200fc624a0168c4bc" 
    } 
} 

答えて

0

TypeErrorはクラスレベルでこのメソッドを呼び出すため、ドキュメント/インスタンス上で呼び出す必要があります。そのため、TypeErrorは、更新されるインスタンスである最初の位置引数(self)が存在しないことを示しています。

だからあなたの更新のラインがそのように動作するはずです:

User.objects().first().update(address_ref="") 

アップデートが動作する場合、その行は1を返します。

関連する問題