django-tables2和LinkColumn。更正Django-admin网站页面的路径

时间:2014-12-07 07:05:32

标签: django django-admin django-tables2

我正在开发cmdb应用程序并尝试使用以下语法在django-tables2 LinkColumn中创建设备管理页面的链接(/ admin / cmdb / device / device_id /):

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

失败,错误

  

/ cmdb / emp / 171 /

中的NoReverseMatch      

' CMDB'不是' admin'

中注册的命名空间

(/ cmdb / emp / 171 / - 是表格所在的页面)

如何在Django管理页面的LinkColumn参数中编写正确的路径?


可以通过使用TemplateColumn来实现目标:

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

但可能有人可以建议如何使用LinkColumn?

1 个答案:

答案 0 :(得分:2)

您的问题不是关于LinkColumn,而是关于找到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 %}中使用。)