获取对象的Django管理url

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

在Django 1.0之前,有一种简单的方法可以获取对象的管理url,我编写了一个小的过滤器,我可以这样使用:<a href="{{ object|admin_url }}" .... > ... </a>

基本上,我使用的是url反向函数,视图名为'django.contrib.admin.views.main.change_stage'

reverse( 'django.contrib.admin.views.main.change_stage', args=[app_label, model_name, object_id] )

去拿网址。

正如您可能已经猜到的,我正在尝试更新Django的最新版本,这是我遇到的障碍之一,获取admin url的方法不再起作用了。

我如何在Django 1.0中做到这一点?(或者说1.1,因为我正在尝试更新SVN中的最新版本)。

提问于
用户回答回答于

我也遇到了类似的问题,我想打电话给reverse('admin_index')不断地django.core.urlresolvers.NoReverseMatch错误。

原来我的urls.py文件中有旧格式的管理URL。

(r'^admin/(.*)', admin.site.root),

这样可以使管理屏幕正常工作,但这是不推荐的方法。我需要把它改为:

(r'^admin/', include(admin.site.urls) ),

一旦我这样做了,所有的善良,都是在反向管理网址医生开始工作了。

用户回答回答于

可以直接在模板中使用URL解析器,无需编写自己的筛选器。例如:

{% url 'admin:index' %}

{% url 'admin:polls_choice_add' %}

{% url 'admin:polls_choice_change' choice.id %}

{% url 'admin:polls_choice_changelist' %}

参考文献:文献资料

扫码关注云+社区