如何在Django中给主页URL添加参数
How to add parameters to the homepage URL in Django
我有一个单一流程 Bootstrap 模板,其中包含 "About"、"Contact" 等所有部分作为单个文件的一部分。菜单栏出现问题,因为我使用 django 的模板继承来包含菜单栏(在 home_menubar.html 中声明),并且我在所有网页中使用行 {% include 'home/home_menubar.html' %}
作为菜单栏。
问题是我必须为菜单栏中的所有类别声明特定的 url,以便呈现相同的 HTML 文件来显示页面中的特定部分,就像我想访问关于列。 url 将是 localhost:8000/about/#aboutus
URL 的样子让我恶心。 URL 有什么办法可以变成 localhost:8000/#aboutus
??
更新 1: 我在许多网页中使用 home_menubar.html
文件,例如 login.html、register.html 等。所以如果我发出
About ,然后在这个 URL: localhost:8000/login/
和 About 菜单项被点击,它变成 localhost:8000/login/#about
不存在。
一些代码:
home_menubar.html
{% load staticfiles %}
<nav class="navbar navbar-inverse navbar-fixed-top" style="font-family: 'Open Sans';">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="{% url 'web_root' %}" class="navbar-brand"><img src="{% static 'home/images/logo.png' %}" alt="company logo" /></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right custom-menu">
<li><a href="{% url 'about' %}">About</a></li>
<li><a href="{% url 'benefits' %}">Benefits</a></li>
{% ifnotequal events_obj None %}
<li><a href="{% url 'upevents' %}">Upcoming Events</a></li>
{%endifnotequal%}
<li><a href="{% url 'contactus' %}">Contact</a></li>
</ul>
</div>
</div>
</nav>
views.py:
def show_homepage(request):
return render(request,'home/homepage.html')
def view_about(request):
return render(request,'home/homepage.html',{'goto':'about'})
def view_benefits(request):
return render(request,'home/homepage.html',{'goto':'benefits'})
def view_upevents(request):
return render(request,'home/homepage.html',{'goto':'upevents'})
urls.py
url(r'^$', views.show_homepage,name="web_root"),
url(r'^benefits/', views.view_benefits,name="benefits"),
url(r'^upevents/', views.view_upevents,name="upevents"),
url(r'^about/', views.view_about,name="about"),
我完全不明白你为什么要复制视图...
为什么不只有一个主页视图:
def show_homepage(request):
return render(request, 'home/homepage.html')
附带 URL:
url(r'^$', views.show_homepage, name="web_root"),
然后在home_menubar.html:
<ul class="nav navbar-nav navbar-right custom-menu">
<li><a href="/#about">About</a></li>
<li><a href="/#benefits">Benefits</a></li>
{% ifnotequal events_obj None %}
<li><a href="/#upevents">Upcoming Events</a></li>
{%endifnotequal%}
<li><a href="/#contactus">Contact</a></li>
</ul>
我有一个单一流程 Bootstrap 模板,其中包含 "About"、"Contact" 等所有部分作为单个文件的一部分。菜单栏出现问题,因为我使用 django 的模板继承来包含菜单栏(在 home_menubar.html 中声明),并且我在所有网页中使用行 {% include 'home/home_menubar.html' %}
作为菜单栏。
问题是我必须为菜单栏中的所有类别声明特定的 url,以便呈现相同的 HTML 文件来显示页面中的特定部分,就像我想访问关于列。 url 将是 localhost:8000/about/#aboutus
URL 的样子让我恶心。 URL 有什么办法可以变成 localhost:8000/#aboutus
??
更新 1: 我在许多网页中使用 home_menubar.html
文件,例如 login.html、register.html 等。所以如果我发出
localhost:8000/login/
和 About 菜单项被点击,它变成 localhost:8000/login/#about
不存在。
一些代码:
home_menubar.html
{% load staticfiles %}
<nav class="navbar navbar-inverse navbar-fixed-top" style="font-family: 'Open Sans';">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="{% url 'web_root' %}" class="navbar-brand"><img src="{% static 'home/images/logo.png' %}" alt="company logo" /></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right custom-menu">
<li><a href="{% url 'about' %}">About</a></li>
<li><a href="{% url 'benefits' %}">Benefits</a></li>
{% ifnotequal events_obj None %}
<li><a href="{% url 'upevents' %}">Upcoming Events</a></li>
{%endifnotequal%}
<li><a href="{% url 'contactus' %}">Contact</a></li>
</ul>
</div>
</div>
</nav>
views.py:
def show_homepage(request):
return render(request,'home/homepage.html')
def view_about(request):
return render(request,'home/homepage.html',{'goto':'about'})
def view_benefits(request):
return render(request,'home/homepage.html',{'goto':'benefits'})
def view_upevents(request):
return render(request,'home/homepage.html',{'goto':'upevents'})
urls.py
url(r'^$', views.show_homepage,name="web_root"),
url(r'^benefits/', views.view_benefits,name="benefits"),
url(r'^upevents/', views.view_upevents,name="upevents"),
url(r'^about/', views.view_about,name="about"),
我完全不明白你为什么要复制视图...
为什么不只有一个主页视图:
def show_homepage(request):
return render(request, 'home/homepage.html')
附带 URL:
url(r'^$', views.show_homepage, name="web_root"),
然后在home_menubar.html:
<ul class="nav navbar-nav navbar-right custom-menu">
<li><a href="/#about">About</a></li>
<li><a href="/#benefits">Benefits</a></li>
{% ifnotequal events_obj None %}
<li><a href="/#upevents">Upcoming Events</a></li>
{%endifnotequal%}
<li><a href="/#contactus">Contact</a></li>
</ul>