一尘不染

获取对象的Django管理url

django

在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,这是我遇到的障碍之一,用于获取管理url的方法不再起作用。

如何在Django 1.0中执行此操作?(或者是1.1,因为我正在尝试更新为svn中的最新版本)。


阅读 324

收藏
2020-04-01

共2个答案

一尘不染

我遇到了类似的问题,尝试打电话给我,reverse('admin_index')并且不断django.core.urlresolvers.NoReverseMatch出错。

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

我在urlpatterns中有这个:

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

这可以使管理屏幕正常工作,但已被弃用。我需要将其更改为:

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

完成此操作后,“ 反向管理URL”文档中承诺的所有好处就开始起作用。

2020-04-01
一尘不染

你可以直接在模板中使用URL解析器,而无需编写自己的过滤器。例如

{% url 'admin:index' %}

{% url 'admin:polls_choice_add' %}

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

{% url 'admin:polls_choice_changelist' %}

2020-04-01