如何将模板标签从普通django转换为一个django-hosts使用

时间:2019-07-14 20:57:09

标签: django django-hosts

我刚刚添加了django-hosts来为我的站点设置子域,这非常正常。下一步就是将模板中的所有常规django URL都转换为一个django-hosts。

我知道如何链接页面,但是一旦我需要在URL中添加变量,我就不确定如何为它构造代码。

正常的django URL

{% url 'golemstats:nodeinfo' node.Node_id node.Node|slugify %}

如何将其转换为django主机喜欢的URL?我尝试了以下方法:

{% host_url 'nodeinfo' host 'golemstats' 'node.Node_id' 'node.Node|slugify' %}

hosts.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"),
]

1 个答案:

答案 0 :(得分:0)

已修复。必须在host_url

之后加上参数
{% host_url 'nodeinfo' node.Node_id node.Node|slugify host 'golemstats' %}