问题标签 [lookupfield]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
117 浏览

python - 用 ModelViewSet 的多个查找字段替换 Default PK slug

我有两个蛞蝓,我针对它们运行查询。感谢基类MultipleFieldLookupMixin,我的视图类继承自基类,因此允许我拥有多个lookup_fields.

我们知道当ModelViewSet使用 with时DefaultRouter会在 URL 的末尾附加 apk这是我不想要的。

例如,当我这样做时:

它给了我网址

最后我不想要这个pk。如果我们可以删除organization,那就更好了。我希望端点是,

mydomain.com/<str:device>/<str:start_time>/.

玩得更多,我了解到在我的课堂上extra_kwargs像这样添加,serializer

lookup_fields在视图类中修改,使用奇异的查找字段,例如lookup_field,使用值让我们说,,start_time如图所示

并通过删除start_timeslug 相应地修改 URL,然后 URL 变为

用修改单数lookup_fieldstart_time显然或多或少地为我们提供了所需的 URL,但并没有完成工作,因为我们现在只有一个 lookup_field!

如果我们编辑这一行

然后我们得到网址

这正是我想要的,但正如我所说,它不起作用,因为单个查找字段。

切入正题,我希望它能澄清我对此的研究,并重申我想要拥有这个 URL 端点的问题陈述

mydomain.com/<str:device>/<str:start_time>/.

有两个蛞蝓,没有改变我的观点的基类,即ModelViewSet。我知道我想要的功能可以很容易地完成,GenericAPIView我也做到了,但我很好奇如何做到这一点。