【问题标题】:Change django admin site url dynamiclly [closed]动态更改 django 管理站点 url [关闭]
【发布时间】:2019-03-18 21:15:09
【问题描述】:

我有 Django 项目。我想使用 django 管理站点并在 django 管理站点中有一个 url 将用户重定向到 certian url,所以我使用了以下代码:

admin.py:

from django.contrib import admin

admin.site.site_url = 'http://localhost:8000/some-api-url/'

此代码更改 django admin 中的 VIEW SITE 链接。问题是这个 url 是静态的,我想动态获取服务器 url,有什么方法可以做到吗?

更新:

我使用 postgres 和 neo4j,我的模型必须在 neo4j 中,但其中一些在 postgres 中。 Django 不支持管理站点中的 neo4j 模型,因此我们开发了前端来支持它。但是 django admin 是完整的,所以我们想将它用于我们的 postgres 模型,但是为了将 django admin 链接到我们的站点,我们需要 django admin 中的链接到我们的前端。我认为 django 管理站点右上角的VIEW SITE 链接是一个很好的链接,我可以更改它,但我需要一种基于域动态更改它的方法,所以问题是如何更改“查看站点” url 动态?

【问题讨论】:

    标签: python django django-admin


    【解决方案1】:

    您可能需要override AdminSite

    我会这样做:

    from django.contrib import admin
    
    class MyAdminSite(admin.AdminSite):
        def each_context(self, request):
            context = super().each_context(request)
            context['site_url'] = self.generate_site_url(request)
            return context
    
       def generate_site_url(self, request):
           # Here goes your custom code for dynamic url
           return url
    

    【讨论】:

    • 我测试过了,问题是AdminConfig中的default_site是针对django 2.1的,请问django 2.0有什么办法吗?
    • @Mastisa 这应该有助于 django 2.0 docs.djangoproject.com/pl/2.0/ref/contrib/admin/…
    • 谢谢,它成功了,但还有另一个问题,我如何将身份验证和授权用户和组模型注册到我的管理站点?
    • @Mastisa 太好了,请接受它作为将来参考的答案。如果您还有其他问题,最好创建一个新问题。
    • @Mastisa 检查此答案以注册用户和组stackoverflow.com/a/35003223/9820085
    猜你喜欢
    • 1970-01-01
    • 2010-11-01
    • 2021-12-19
    • 2013-06-23
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    相关资源
    最近更新 更多