假设我有一个模型A和一个模型B,它们与模型A有ForeignKey关系在Django Admin中的任何modelA对象页面上,我希望有一个链接,指向与该modelA示例有关系的modelB示例的过滤列表。举例来说:从/admin/my_app/modelA/1/change/,我想访问/admin/my_app/modelB/?modelA__id__exact=1。
/admin/my_app/modelA/1/change/
/admin/my_app/modelB/?modelA__id__exact=1
yhived7q1#
要创建包含筛选器的管理员更改视图的完整URL,请执行以下操作:1.反转URL根据https://docs.djangoproject.com/en/4.2/ref/contrib/admin/#reversing-admin-urls中的列表,您可以从模型和应用程序标签动态创建URL。这就是模式:第一个月在您的案例中:
# in models.py class MyModel(Model): # you're model fields # in admin.py in some Admin class model_cls = MyModel change_url = reverse(f'admin:{model_cls._meta.app_label}_{model_cls._meta.model_name}_changelist')
字符串1.添加筛选器参数与所有常规reverse()调用一样,将参数添加到kwargs关键字参数列表中。在变更清单上,搜寻参数为q。在admin.py中定义搜索字段:
reverse()
kwargs
q
search_fields = ['modelA__id__exact']
型然后得到这样的网址:
change_url = reverse('admin:myapp_modelb_change', kwargs={'q': 1})
型
1条答案
按热度按时间yhived7q1#
要创建包含筛选器的管理员更改视图的完整URL,请执行以下操作:
1.反转URL
根据https://docs.djangoproject.com/en/4.2/ref/contrib/admin/#reversing-admin-urls中的列表,您可以从模型和应用程序标签动态创建URL。
这就是模式:第一个月
在您的案例中:
字符串
1.添加筛选器参数
与所有常规
reverse()
调用一样,将参数添加到kwargs
关键字参数列表中。在变更清单上,搜寻参数为
q
。在admin.py中定义搜索字段:
型
然后得到这样的网址:
型