【问题标题】:django-tables2 and LinkColumn. Correct path to Django-admin site pagedjango-tables2 和 LinkColumn。 Django-admin 站点页面的正确路径
【发布时间】:2014-12-07 07:05:31
【问题描述】:

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

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

失败并出现错误

NoReverseMatch 在 /cmdb/emp/171/

'cmdb' 不是在 'admin' 中注册的命名空间

(/cmdb/emp/171/ - 是渲染表格的页面)

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


使用 TemplateColumn 可以实现目标:

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

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

【问题讨论】:

    标签: django django-admin django-tables2


    【解决方案1】:

    您的问题不是关于LinkColumn,而是关于找出 django 管理页面的 url 名称。

    无论如何,您都可以在这里找到答案:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#reversing-admin-urls

    因此,如果您的应用程序名称为cmdb,而您的模型名称为device,则设备编辑页面的 url 名称将为admin:cmdb_device_change,可以在LinkColumn 中使用(也可以可以在TemplateColumn中使用{% url "admin:cmdb_device_chang" record.id %})。

    【讨论】:

    • 谢谢!这就是我需要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2020-12-08
    相关资源
    最近更新 更多