使用 Flask-Restful 的字段,如何获得 "catchall" 字段?

Using Flask-Restful's fields, how do I have a "catchall" field?

我正在使用 Flask-Restful。我想要一个结构化的编组,但有一个可以包含任何其他有效 JSON 数据的任意字段。

例如,假设我有一个针对 'name' 和 'birth_date' 用户的资源,还有一个包含任意 JSON 的 'preferences' 字段:

from flask_restful import Resource, marshal_with, fields
import datetime
class MyResource(Resource):
    resource_fields = {
        'name': fields.String,
        'birth_date': fields.DateTime,
        'preferences': fields.GeneralJson
    }

    @marshal_with(resource_fields)
    def get(self):
        return {'name': 'Newbie Newborn',
                'birth_date': datetime.datetime.now(),
                'preferences': {
                    'wine': 'cab-sav',
                    'cheese': 'cheddar',
                    'favorite_movies': ['The Big Lebowski', 'Anchorman']}
                }

这个问题当然是 fields.GeneralJson 不存在。我应该如何使用 Flask-Restful 定义 JSON 模式的 "schema-less" 部分?

啊哈。您可以只使用 fields.Raw.