我需要提供有关多对多关系的REST数据。我一直在使用web2py可爱的parse_as_rest功能,但不能完全解决多对多的问题。
例如,让我们采用标准用户和群组。
表:
我需要使用什么模式来提供一个能够为我提供用户所属的所有group_name的网址?
patterns = [
"/user[user]",
"/user[user]/id/{user.id}",
"/user[user]/id/{user.id}/membership[membership.user_id]",
# This is the line that I can't make yet:
#"/user[user]/id/{user.id}/membership[membership.user_id]/group<WHAT GOES HERE>",
"/group[group]",
"/group[group]/id/{group.id}",
]
parser = db.parse_as_rest(patterns, args, vars)
使用上面的非注释行,我可以访问这些网址:
URL#3向我显示了我的所有成员资格,然后我可以对URL#5进行多次单独调用以获取group_name值,但是必须有一种方法可以通过一次调用来完成此操作。
帮我StackOverflow!你是我唯一的希望。
编辑:修复了不良切割和粘贴。
答案 0 :(得分:0)
这个问题是谷歌搜索该主题的首要问题。
只需从多对多表开始构建查询。
/user[membership]/id/{membership.user_id}/groups[group.id]
此请求您并不需要'user'表。
然后请求“/ user / id / 22 / groups”将为您提供所有组,不仅仅是他们的ID。