2014-10-19 38 views
0

我在使用[Flask-RESTful] [1]在嵌套輸出字段中生成api端點URL有困難。如何添加字段網址的嵌套輸出字段在燒瓶寧靜

我發現fields.Url('my_endpoint', absolute=True)只生成頂部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), 
} 

回答

0

問題是fields.Url需要所需的端點參數,在這種情況下,它username

參數username可用於user_fields與返回user對象,但role對象user.role不包含username屬性。

因此,在返回之前,我分配了'用戶名attribute to user.role`對象。

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