代码之家  ›  专栏  ›  技术社区  ›  mastisa

动态更改django管理站点url[关闭]

  •  0
  • mastisa  · 技术社区  · 6 年前

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

    from django.contrib import admin
    
    admin.site.site_url = 'http://localhost:8000/some-api-url/'
    

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

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   Kamil Niski    6 年前

    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
    
    推荐文章