动态更改Django管理网站网址

时间:2018-10-14 05:51:55

标签: python django django-admin

我有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链接是一个很好的链接,我可以更改它,但是我需要一种基于域动态更改它的方法,所以问题是如何更改'VIEW网站的网址是动态的吗?

1 个答案:

答案 0 :(得分: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