代码之家  ›  专栏  ›  技术社区  ›  Serge Rogatch

添加按钮到Django管理索引页

  •  1
  • Serge Rogatch  · 技术社区  · 6 年前

    Site-wide button "Synchronize SQL-KB"

    为此我在本地复制了 templates/admin/index.html Django的文件,修改如下:

    ...
    {% if app_list %}
        <table>
            <tr>
                <td>
                    <a href="sync-sql-kb/">Synchronize SQL-KB</a>
                </td>
            </tr>
        </table>
        {% for app in app_list %}
        ...
    

    如你所见,我希望链接按钮触发一个请求 /admin/sync-sql-kb/ .

    请注意,在我看来,这种情况与其他SO问题不同,因为该操作是站点范围的,而不是绑定到特定的Django模型。

    1 回复  |  直到 6 年前
        1
  •  1
  •   markwalker_    6 年前

    您可以编写自己的视图,只需在管理url旁边注册即可;

    urlpatterns = [
        path('admin/sync-sql-kb/', myapp.urls),
        path('admin/', admin.site.urls),
    ]
    

    那你就可以做了; <a href="/admin/sync-sql-kb/">Synchronize SQL-KB</a>

    reverse 和平常一样。

    我建议您将链接添加到 userlinks https://cheat.readthedocs.io/en/latest/django/admin.html#customize-top-right-corner-of-admin-pages