【问题标题】:Python eve sub-resource / custom queryPython eve 子资源/自定义查询
【发布时间】:2018-10-09 17:32:00
【问题描述】:

我有两个资源,

用户资源:

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"}]}

为此,我们将获取用户并使用该信息来构建上述查询。

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

/users/<userid>/events

/events?for=<userid>

【问题讨论】:

  • 对于模式用户,兴趣是什么数据类型的列表?同样,我认为架构用户是错误的,因为您必须为类别指定数据类型列表。

标签: python eve


【解决方案1】:

Documentation 建议尽管有可能,但where 样式查询是首选/推荐

【讨论】:

    【解决方案2】:

    事件应该是这样的:

    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/&lt;regex("[a-zA-Z0-9]{24}":user_id&gt;/events 链接处理事件。如果您还想保留/events 端点,请使用this 方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      • 2015-09-25
      相关资源
      最近更新 更多