tickets: 8564
This data as json
id | created | changetime | last_pulled_from_trac | stage | status | component | type | severity | version | resolution | summary | description | owner | reporter | keywords | easy | has_patch | needs_better_patch | needs_tests | needs_docs | ui_ux |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
8564 | 2008-08-26 18:35:07 | 2008-08-31 20:12:41 | 2022-03-06 03:42:35.410401 | Unreviewed | closed | contrib.admin | dev | duplicate | newforms-admin doesn't support linking to it via {% url %} or reverse() | In the old admin, that was possible to have a link to the admin area in the UI, like: {{{ {% if user.is_staff %} <a href="{% url django.contrib.admin.views.main.index %}">Admin area</a> {% endif %} }}} or even: {{{ <a href="{% url django.contrib.admin.views.main.change_stage "app","model",instance.id %}">Edit instance</a> }}} In newforms-admin, that crashes with: {{{ Reverse for 'src.django.contrib.admin.site.root' not found. }}} I do realize that admin.site is now a Site instance, not a module, that's why {% url %} will never work for it. However, I can't see how to put a link to the admin area now? Currently I'm using the following hack: {{{ #!python urlpatterns = # ... #(r'^admin/(.*)', admin.site.root), (r'^admin/(.*)', 'views.admin_site_root'), # ... def admin_site_root(request, url): return admin.site.root(request, url) }}} and then: {{{ <a href="{% url views.admin_site_root "" %}">Admin</a> }}} which is pretty ugly (since of complete redundancy) but solves the problem. I defenitely think there should be a standard way to pull the admin site urls. I can suggest two approaches: 1. Extend reverse() and {% url %} to recognize/understand bound methods, in particular django.contrib.admin.site.root 2. Under django.contrib.admin.templatetags, create a set of tags like {% admin django.contrib.admin.site %} and {% admin_change_list django.contrib.site "app","model" %} | nobody | semenov | newforms-admin reverse url | 0 | 0 | 0 | 0 | 0 | 0 |