烧瓶休息田.列表始终返回"无"



我有两个资源,UserCollectionResourceUserResource。后者工作正常,并按预期返回用户。前者的get方法总是返回[{'users': None}]。我遵循了许多示例,但无法弄清楚是什么导致了这种行为。

user_fields = {
'id': fields.Integer,
'username': fields.String
}
user_collection_fields = {
'users': fields.List(fields.Nested(user_fields))
}
class UserCollectionResource(Resource):
@marshal_with(user_collection_fields)
def post(self):
args = post_users_parser.parse_args()
test_user = UserModel.query.filter_by(username=args.username)
if test_user:
abort(409)
else:
user = User(args.username, args.password, ifttt_key=args.ifttt_key)
db.session.add(user)
db.session.commit()
return user, 201
@marshal_with(user_collection_fields)
def get(self):
users = UserModel.query.filter(UserModel.username != "admin").all()
if not users:
abort(404)
else:
return users
class UserResource(Resource):
@marshal_with(user_fields)
def get(self, user_id=None):
user = UserModel.query.filter_by(id=user_id).filter(UserModel.username != "admin").first()
if not user:
abort(404)
else:
return user
api.add_resource(UserCollectionResource, '/api/users', endpoint="users")
api.add_resource(UserResource, '/api/users/<int:user_id>', endpoint="user")

我认为值得注意的是,在 return 语句之前打印users实际上会显示一个用户列表:[<User(Username ='zeke')>].

我在这个问题的帮助下想通了。UserCollectionResourceget函数需要返回{"users": : users}而不是users。文档并没有明显说明这一点。

相关内容

  • 没有找到相关文章

最新更新