当前位置: 首页 > 面试题库 >

如何在flask Restful中为嵌套输出字段添加字段URL

韩羽
2023-03-14
问题内容

我无法使用[Flask-RESTful] [1]在嵌套的输出字段中生成api端点URL。

我发现fields.Url('my_endpoint', absolute=True)只在顶部url字段内生成url,而不在嵌套的url字段内生成url。它抛出werkzeug.routing.BuildError-[错误日志要点]
[1]
https://gist.github.com/anonymous/6251c67089871d0e4516

例如,这是我的网址字段

role_fields = {
    'name': fields.String(attribute='title'),
    'id': fields.Integer(attribute='id'),
    'uri': fields.Url('user_endpoint', absolute=True)
}


user_fields = {
    'id': fields.Integer,
    'username': fields.String,
    'email': fields.String,
    'full_name': fields.String(attribute='real_name'),
    'website': fields.String(default=None),
    'bio': fields.String(default=None),
    'created_date': fields.DateTime,
    'modified_date': fields.DateTime,
    'uri': fields.Url('user_endpoint', absolute=True),
    'role': fields.Nested(role_fields),
}

问题答案:

问题是fields.Url需要一个必需的端点参数,在本例中为username

该参数username可用于user_fields返回user对象,但该role对象user.role不包含username属性。

所以我attribute to在返回之前分配了’username user.role`对象。

user = get_user(username) #Get user object from db
user.role.username = user.username
return user


 类似资料:
  • 我的团队在DynamoDB中添加了一个新字段,我需要为当前不包含该字段的所有条目添加一个整数。 我尝试在这里使用Update示例,但是我得到了一个,因为我的子句不包括主键。但是,我不需要按主键过滤,因为我只关心没有新列值的条目。 我正在运行的查询是PartiQL,它是:

  • 问题内容: 假设我有一个像这样的领域模型: 现在,我可以像这样创建一个教师比较器: 但是,我如何像这样在嵌套字段上比较Lecture? 我无法在模型上添加方法。 问题答案: 您不能嵌套方法引用。您可以改用lambda表达式: 无需反向顺序,它就不再那么冗长了: 注意:在某些情况下,您需要明确声明泛型类型。对于 例如,下面的代码不会没有工作,之前在Java中8。 较新的Java版本具有更好的自动类型

  • 问题内容: 考虑一下这样的Elasticsearch中的文档: 我想搜索时不知道它是在文档的第一层还是第二层。这可能吗?还请记住,嵌套级别可以是任何东西(在开发时未知)。 如果可能的话,在不知道文档第二级中存在的情况下通过搜索返回该文档的查询是什么? 问题答案: 试试这个:

  • 问题内容: 我正在尝试做这样的事情。但是我收到一个未知的列错误: 基本上,我只想使用别名,这样就不需要执行之前执行的操作。在mysql中这可能吗? 问题答案: 考虑使用子查询,例如:

  • Sup社区。我有个问题。我正在使用Elasticsearch 6.4 我的数据结构的一部分: 我需要得到按成本排序的文档desc,我需要排序dirs字段中的值date_by字段与nulls-first。 如何对嵌套字段内的值进行排序,而不按此嵌套字段对文档进行排序?

  • 本文向大家介绍Mysql如何为表字段添加索引?相关面试题,主要包含被问及Mysql如何为表字段添加索引?时的应答技巧和注意事项,需要的朋友参考一下 1.添加PRIMARY KEY(主键索引) 2.添加UNIQUE(唯一索引) 3.添加INDEX(普通索引) 4.添加FULLTEXT(全文索引) 5.添加多列索引