django - 重定向到 Django Admin 中的过滤列表

假设,我有一个 modelA 和 modelB,它们与 modelA 有 ForeignKey 关系

在 Django Admin 的任何 modelA 对象页面上,我想要一个链接到与该 modelA 实例有关系的 modelB 实例的过滤列表。

例如:

/admin/my_app/modelA/1/change/,我想访问 /admin/my_app/modelB/?modelA__id__exact=1

最佳答案

创建包含过滤器的管理员更改 View 的完整 URL:

  1. 反转 URL

根据https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#reversing-admin-urls中的列表 您可以根据模型和应用标签动态创建 URL。

这是模式:{{ app_label }}_{{ model_name }}_changelist

在你的情况下:

change_url = reverse('admin:myapp_modelb_change')

编辑:我删除了下划线并将模型名称小写。我不确定应用程序名称中的下划线。就我而言,我没有使用下划线 - 反转对我有用。

  1. 添加过滤参数

与所有常规 reverse() 调用一样,将参数添加到 kwargs 关键字参数列表。

在你的情况下:

change_url = reverse('admin:myapp_modelb_change', kwargs={'modelA__id__exact': 1})

https://stackoverflow.com/questions/58974600/

相关文章:

pyspark - 如何在 NoteBook 以外的 pyspark 作业中使用 dbutils 命

php - 权限被拒绝 : copy/writing file (laravel/php)

reactjs - react Apollo 测试 : MockProvider takes a l

typescript - 如何在 Visual Studio CE 2019 中使用#region/

c# - EFCore 在一对一关系上生成的列名无效

java - 如何禁用 Spring Actuators 的内容协商?

react-native - react native 运行 ios 忽略模拟器选项

ios - SwiftUI:ScrollView 偏移滚动内容

npm - [错误 : Unspecified GSS failure. 次要代码可能提供更多信息:

python - Jupyterhub-错误 :asyncio:Task exception was