gpt4 book ai didi

django - 如何反转管理员操作的 URL?

转载 作者:行者123 更新时间:2023-12-05 05:17:19 24 4
gpt4 key购买 nike

我发布这个是因为我在 stackoverflow 和文档中搜索了很长时间都没有找到答案——希望这能帮助到一些人。

问题是,出于测试目的,我如何找到与特定模型的管理操作相关的 URL?

管理模型 url 都可以通过 reverse(admin:appname_modelname_*) 找到,其中 * 是操作(更改、删除等)。但是我找不到用于管理操作的网址,并且由于我正在定义自定义操作,所以我想获取 url。

最佳答案

这需要相当多的挖掘,我在 Django 文档中找不到任何关于它的信息,最后我不得不检查第三方库的源代码。

基本上有 2 种 URL 模式,一种用于批量操作,一种用于对象操作:

  • 批量:r'admin/<app_label>/<model_name>/actions/(?P<tool>\\w+)/$'
  • 对象:r'admin/<app_label>/<model_name>/(?P<pk>.+)/actions/(?P<tool>\\w+)/$'

URL 名称模式是 <app_label>_<model_name>_actions

因此我们可以反转批量 View :

  • 使用参数:reverse("admin:<app_label>_<model_name>_actions", args=["foo"])
  • 使用 kwargs:reverse("admin:<app_label>_<model_name>_actions", kwargs={"tool": "foo"})

反转对象 View :

  • 使用参数:reverse("admin:<app_label>_<model_name>_actions", args=[1, "foo"])
  • 使用 kwargs:reverse("admin:<app_label>_<model_name>_actions", kwargs={"pk": 1, "tool": "foo"})

关于django - 如何反转管理员操作的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49408724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com