首页 > 解决方案 > 如何获取 django 应用程序的当前基本 URL 路径

问题描述

我正在制作一个可重用的 Django 应用程序,假设它的名称是 Polls。无论在其父应用程序的 urls.py 中的何处配置此应用程序,它都应该可以正常工作。

考虑下面的结构,就像 Django 教程中的那样

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
    polls/
        __init__.py
        urls.py
        admin.py
        apps.py
        models.py
        views.py

因此,投票应用程序有自己的 urls.py 和自己的 views.py 可以链接到任何其他应用程序,例如 mysite,方法是在mysite/mysite/urls.py中添加一行,例如本示例 urls 中的第 5 行。 py:

from django.urls import path, include

urlpatterns = [
    path('polls/', include('polls.urls'))
]

在此示例中,投票应用程序的所有视图都将具有类似https://somedomain.com/polls/the-relative-page-link的链接但是,即使我们在上面编辑了第 5 行,投票应用程序仍应正常运行其他基本路径的代码,例如:

urlpatterns = [
    path('another-path/', include('polls.urls'))
]

所以这会改变喜欢https://somedomain.com/another-path/the-relative-page-link

我的问题是“民意调查”应用程序的某些视图包含自定义 JavaScript 代码,这些代码与代表服务器端 API 的另一个视图进行通信。因此,无论投票 URL 是在/polls下还是在/another-path下,为了让这种通信都能正常工作,我需要一种方法来动态查找投票应用程序的当前路径,以便它可以生成可以通信的正确 javascript 代码及其 API。在制作可重用应用程序时,我该怎么做或者处理这种情况的传统方法是什么?

标签: pythondjangodjango-urls

解决方案


推荐阅读