2014-12-07 4 views
0

Я разрабатываю приложение cmdb и пытаюсь создать ссылку на страницу администратора устройства (/ admin/cmdb/device/device_id /) в django-tables2 LinkColumn со следующим синтаксисом:django-tables2 и LinkColumn. Правильный путь к странице сайта Django-admin

id = tables.LinkColumn('admin:cmdb:device', args=[A('pk')]) 

Это с ошибкой

NoReverseMatch в/CMDB/EMP/171/

'CMDB' не является зарегистрированным пространства имен внутри 'администратора'

(/ CMDB/EMP/171/- это страница, на которой визуализируется таблица)

Как я могу написать правильный путь в LinkColumn аргумента к странице администратора Django?


цель может быть достигнута с помощью TemplateColumn:

id2 = tables.TemplateColumn('<a href="/admin/cmdb/device/{{record.id}}">{{record.id}}</a>') 

но, возможно, кто-то может посоветовать, как использовать LinkColumn?

ответ

2

Ваш вопрос не о LinkColumn, а об обнаружении имен URL-адресов страниц администрирования django.

В любом случае, вы можете найти ответ на свой вопрос здесь: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#reversing-admin-urls

Так что, если имя вашего приложения cmdb и название вашей модели device, название адрес страницы устройства редактирования будет admin:cmdb_device_change который может использоваться в LinkColumn (также он может использоваться в TemplateColumn с использованием {% url "admin:cmdb_device_chang" record.id %}).

+0

Спасибо! Это то что мне нужно! – Leo