2017-07-27 8 views
0

私はpython 3.4.2、eve 0.7、フラスコ0.12、MongoDBを私のDBとして使用しています。MongoDBのObjectIdを使用してリソースを取得すると404を返しますか?

は、ここに私の前夜スキーマコードです:

'item_title': 'abc',                                   
'id_field': 'ObjectId',                                   
'item_lookup_field': 'ObjectId',                                
'item_url': r'regex("[\w]+")',                                 
'query_objectid_as_string': True 

私はMongoのオブジェクトIDを使用してリソースを取得しようと、それは返し404

'item_title': 'abc',                                   
'id_field': 'custom_field',                                   
'item_lookup_field': 'custom_field',                                
'item_url': r'regex("[\w]+")',                                 
'query_objectid_as_string': True 

私は他のカスタムフィールドを使用する場合には、正常に動作します。 以下のコードも試しました。また、 ' `query_objectid_as_stringので404

'item_title': 'abc',                                   
#'id_field': 'ObjectId',                                   
#'item_lookup_field': 'ObjectId',                                
'item_url': r'regex("[\w]+")',                                 
'query_objectid_as_string': True 
+0

'id_field'設定は、使用されるIDフィールドの名前を設定するだけです。リソースに 'ObjectId'という名前のフィールドがありますか?投稿した後にこれを変更した場合、まだ更新されていない可能性があります。 – gcw

+0

リソースにフィールド名オブジェクトIDがありません。それはフィールド '_id'を持っています –

+0

それはあなたがリソースを得ることができない理由です。 'item_lookup_field'は' ObjectId'に設定されていますが、存在しません。これらの設定を使用して新しいリソースを作成しようとすると、新しいリソースは期待されるIDフィールドを持ち、ルックアップのために必要に応じて動作するはずです。 – gcw

答えて

1
'id_field': '_id', # Name of field                                  
'item_lookup_field': '_id', # Name of object field ex. mongo object id here 

'query_objectid_as_string': False 

trueを返しますそれは反対しない文字列としてデータベースに照会します。だからそれは見つからない。だからそれは返す404

関連する問題