我想在 UserResource URI 中包含用户名,但仅当资源被列为Full=False
.
我尝试过覆盖dehydrate_resource_uri
,但这仅适用于查看资源的详细视图时,并且我尝试过覆盖get_resource_uri
,但我不确定如何检测资源是否被切换Full
并且 UserResource 总是被视为api_dispatch_detail
偶数如果它被显示为另一个资源的字段。
这是一个 GroupResource 的示例,其中 UserResource 是嵌套的,我想展示什么
{
id: 1,
resource_uri: "/api/v2/group/1/",
users: [
[
"/api/v2/user/8/",
"First_name Last_name" #this is what I'd like to have added
],
[
"/api/v2/user/9/",
"First_name Last_name" #this is what I'd like to have added
]
}
然后 UserResource 详细信息页面不应显示名称:
{
id: 1,
first_name: "",
last_name: "",
resource_uri: "api/v2/user/1/", #no names needed here, since I've already got their name
}
棘手的部分是,在 UserResource 的详细视图中,我不需要他们在 中显示的名字和姓氏resource_uri
,尽管我知道我可以使用dehydrate_resource_uri
它在显示给 api 用户之前从 uri 中删除名称。我还可以检查请求路径以查看正在查看的资源,但这并不理想,因为它需要硬编码的 uri。
所以问题是如何根据资源是仅显示为 URI 还是显示为完全详细的视图来显示自定义 URI。