Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask restful如何使用()封送mongoengine的reference_字段中的数据?_Python_Mongodb_Flask_Mongoengine_Flask Restful - Fatal编程技术网

Python Flask restful如何使用()封送mongoengine的reference_字段中的数据?

Python Flask restful如何使用()封送mongoengine的reference_字段中的数据?,python,mongodb,flask,mongoengine,flask-restful,Python,Mongodb,Flask,Mongoengine,Flask Restful,我使用Flask restful和MongoEngine,我想在JSON中显示我的模型的ReferenceField中的数据 我有这2个模型,RoomModel有一个ReferenceField到UserModel: class RoomModel(Document): meta = {'allow_inheritance': True} room_name = StringField() created_by = ReferenceField(UserModel)

我使用
Flask restful
MongoEngine
,我想在JSON中显示我的模型的
ReferenceField
中的数据

我有这2个模型,
RoomModel
有一个
ReferenceField
UserModel

class RoomModel(Document):
    meta = {'allow_inheritance': True}

    room_name = StringField()
    created_by = ReferenceField(UserModel)

class UserModel(Document):

    username = StringField()
    email = StringField()
我想
用()封送\u
从mongoengine查询获得的所有数据到响应,所以我这样做了:

     room_model_fields = {
        'room_name': fields.String,
        'created_by': fields.String(attribute=UserModel._id)
    }

    room_model_fields_format = {
        'rooms': fields.List(fields.Nested(room_model_fields))
    }


    @staticmethod
    @marshal_with(room_model_fields_format)
    def get():
        room = RoomModel.objects().all() 
        return {'rooms': room},200
我得到的答复是:

{
 rooms": [
    {
      "room_name": "mobile_legend",
      "created_by": "UserModel object" <<--Now: This only return a string with "UserModel object"
      "created_by": "SOME_ID_STRING"  <<-- THIS IS WHAT I WANT
    }
  ]
}
{
房间“:[
{
“房间名称”:“手机传奇”,

“created_by”:“UserModel object”您需要使用
attribute='created_by.id'
。请参见下面的示例:

来自mongoengine导入字符串字段
从flask_restful导入字段,使用
车辆类别(文件):
brand=StringField()
类用户(文档):
car=参考字段(car)
name=StringField()
汽车=汽车(品牌='VW')。保存()
user=user(car=car,name='John Doe').save()
@使用({'name':fields.String,'id':fields.String,'car\u id':fields.String(attribute='car.id'))封送\u
def get():
返回用户
打印(dict(get())#{'car_id':u'5e124e83aa7a17915748ab2','name':u'John Doe','id':u'5e124e83aa7a17915748ab3'}