我刚刚添加了 django-hosts 来为我的网站设置子域,效果很好。下一步只是将我模板中的所有普通 django URL 转换为一个 django-hosts 之类的。
我知道如何链接页面,但是一旦我需要向我的 URL 添加变量,我就不确定如何为其构建代码。
正常的 django URL 有效
{% url 'golemstats:nodeinfo' node.Node_id node.Node|slugify %}
如何将其转换为 django-hosts 喜欢的 URL?我尝试了以下方法:
{% host_url 'nodeinfo' host 'golemstats' 'node.Node_id' 'node.Node|slugify' %}
主机.py
from django.conf import settings
from django_hosts import patterns, host
host_patterns = patterns('',
host(r'www', settings.ROOT_URLCONF, name='www'),
host(r'golem', 'golemstats.urls', name='golemstats'),
)
golemstats.urls
from django.urls import path
from . import views
app_name = 'golemstats'
urlpatterns = [
path('', views.index, name='index'),
path('node', views.searchNode, name='searchNode'),
path('node/<nodeid>/<node>', views.nodeinfo, name="nodeinfo"),
path('version-notifier', views.notifierIndex, name="notifier"),
path('ports', views.portScanner, name="portscanner"),
path('scoreboard', views.scoreboard, name="scoreboard"),
path('tools', views.tools, name="tools"),
path('troubleshooting', views.troubleshooting, name="troubleshooting"),
path('network', views.networkOverview, name="networkOverview"),
]