Django View вызывается дважды из Chromium
Столкнулась с проблемой вызова двух разных вьюх, когда вызвана должна быть только одна. Проблема возникает только в Chromium.
Мои urls
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('syslog', views.SyslogView.as_view(), name='syslog'),
path('<str:page_url>', views.ServerView.as_view(), name='servers')
]
Мои представления
class ServerView(View):
def __init__(self):
self._zapi = ZabbixAPI(ZABBIX_URL, user=ZABBIX_USER, password=ZABBIX_PASSWORD)
def get(self, request, page_url):
item = MENU.get(page_url)
answer = self.__get_hosts_info(group_name=item.name)
servers = self.__generate_servers(answer)
params = {"page_name": item.name,
"page_header": item.header,
"page_url": item.url,
"servers": servers}
return render(request, "control_system/server_page.html", params)
def __generate_servers(self, answer):
servers = []
for s in answer:
data = {}
data["region"] = s["inventory"]["site_state"] if s["inventory"] else ""
data["location"] = s["inventory"]["location"] if s["inventory"] else ""
data["name"] = s["name"]
data["ip"] = s["interfaces"][0]["ip"]
servers.append(data)
return servers
def __get_hosts_info(self, group_name):
hosts = self._zapi.do_request("hostgroup.get", {"output": "extend",
"selectHosts": "extend",
"filter": {
"name": [
group_name
]
}})["result"][0]["hosts"]
hostids = [z["hostid"] for z in hosts]
answer = self._zapi.host.get(output=["name"],
selectInterfaces=["interfaceid","ip"],
selectInventory=["location", "site_state"],
hostids=hostids)
return answer
class IndexView(View):
def __init__(self):
super().__init__()
self._zapi = ZabbixAPI(ZABBIX_URL, user=ZABBIX_USER, password=ZABBIX_PASSWORD)
def get(self, request):
params = {"page_name": "HOME",
"page_header": "Главная",
"page_url": "home"}
return render(request, "control_system/index.html", params)
Мой шаблон меню
{% for menu_item in menu %}
<li {% if page in menu_item.url %} class="active" {% endif %}>
{% if menu_item.url == "home" %}
<a href="{% url 'index' %}">
{% elif menu_item.url == "syslog" %}
<a href="{% url 'syslog' %}">
{% else %}
<a href="{% url 'servers' menu_item.url %}">
{% endif %}
<i class="fa fa-link"></i>
<span>{{ menu_item.name }}</span>
</a>
</li>
{% endfor %}
При клике на любую ссылку из меню вызывается нужная вьюха, и в любом случае ServerView. Не могу понять, в чем причина( Заранее спасибо за ответы!