我有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网站的网址是动态的吗?
答案 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