我正在开发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?
答案 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 %}
中使用。)