Python eve子资源/自定义查询

时间:2015-06-11 13:52:33

标签: python eve

我有两个资源,

用户资源:

users = {
  'schema': {
    'username': {
        'type': 'string',
        'required': True
    },
    'interests': {
        'type': 'list'
    }
  }
}

示例,

{"username": "Yogi", "interests":["Sports", "News"]}

活动资源:

events = {
  'schema': {
    'name': {
        'type': 'string',
        'required': True,
    },
    'categories': {
        'type': 'list',
        'required': True,
        'minlength':1
    }
  }
}

实施例,

{"name": "IPLT20", "categories": ["Sports"]}

Python Eve中是否有办法查询符合用户兴趣的所有事件。

一种方法是构建如下的查询,

/events?where={"$or":[{"categories":"Sports"},{"categories":"News"}]}

为此,我们将对用户进行GET并使用该信息,我们必须构建上述查询。

在Python Eve中是否可以进行(一步)查询,例如

/users/<userid>/events

/events?for=<userid>

2 个答案:

答案 0 :(得分:0)

Documentation表示虽然有可能,where样式查询是首选/推荐

答案 1 :(得分:0)

事件应类似于:

events = {
    'url': 'users/<regex("[a-zA-Z0-9]{24}":user_id>/events',
    'schema': {
        'user_id': {
            'type': 'objectid',
            'data_relation': {
                'resource': 'queues',
                'field': '_id',
                'embeddable': True
            },
        },
        'name': {
            'type': 'string',
            'required': True,
        },
        'categories': {
            'type': 'list',
            'required': True,
            'minlength': 1
        }
    }
}

但这将使您仅通过users/<regex("[a-zA-Z0-9]{24}":user_id>/events链接处理事件。如果您还想保留/events端点,请使用this方法