В моем проекте Django есть два приложения: веб-инструмент и интерфейс REST.
Я запускаю интерфейс REST в моей системе баз данных (например, db.myhost.com
).Этот интерфейс имеет только шаблоны URL, которые соответствуют различным конечным точкам REST:
app_name = "rest"
urlpatterns = [
url(r'^report/id/(?P<rid>[0-9]+)/$', views.ReportByID.as_view()),
url(r'^report/slug/(?P<slug>[a-z0-9-]+)/$', views.ReportBySlug.as_view()),
]
Часть данных, которые эти представления в конечном итоге показывают, нуждаются в ссылках на другое приложение в моем проекте (который я размещаю в отдельной системе),Это приложение также имеет шаблоны URL:
app_name = "mytool"
urlpatterns = [
url(r'^some/cool/path/$', views.some_cool_path),
]
Интерфейс REST включает шаблоны URL REST только потому, что я хочу обслуживать конечные точки REST только через этот хост:
# On my REST system
ROOT_URL = "myproject.rest_urls"
Есть ликаким образом я могу заставить приложение REST загружать шаблоны URL mytool
без их активации?Я не хочу, чтобы пользователь мог перейти к db.myhost.com/some/cool/path/
и получить ошибку, потому что этот путь не обслуживается на этом хосте, а обслуживается сервером веб-инструментов.Было бы полезно, однако, иметь возможность использовать reverse()
для получения mytool
URL, даже если они являются просто относительными фрагментами (т. Е. /some/cool/path
... Я всегда мог бы добавить имя сервера, что вряд ликогда-либо измениться).
Я мог бы жестко запрограммировать необходимые пути, но я хотел бы избежать необходимости делать это в случае, если они должны измениться в будущем.