给出如下网址:
http://127.0.0.1:8000/admin/foo/bar/
如何使用bar
从请求中访问request.resolver_match.kwargs
变量?
管理员也给予bar
什么样的奖励?
尝试了不同的键,例如class
,content_type
,slug
,model
,但是它们都不起作用。
编辑:
看来正确的kwarg是model_name
,但返回的是None
。我设法使用以下方法提取模型名称:
request.resolver_match.url_name.split('_')[1]
但是想知道是否还有更直接的方法。
答案 0 :(得分:1)
那应该只是应用标签。如果您要访问该URL,则您属于ModelAdmin
类。要从ModelAdmin
访问应用程序标签(问题示例中的foo),您可以执行self.model._meta.app_label
,因此您无需处理请求。
您可以使用ModelAdmin
在self.model
中访问模型(示例栏中的问题)。
除非您将模型名称放在request
对象中,否则它不会直接在其中。您可以从request.path.strip('/').split('/')[-1]
或request.resolver_match.url_name.split('_')[1]