Python “导航栏”中的链接相互重叠:/

Python “导航栏”中的链接相互重叠:/,python,django,url,django-urls,Python,Django,Url,Django Urls,大家好:当我转换到另一个链接时,“导航栏”中的链接彼此重叠。例如,我有一个导航栏菜单,有四个不同的链接:主页、目录、分销商和联系人,“主页”是一个基本网页。也就是说,当我从基本网页过渡到目录时,我得到了这一切,但随后我过渡到“分销商”部分,然后我得到了这一点,如何纠正这一点是不正常的? 我的url模式似乎是正确的:/ urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^catalog/$', views.cat

大家好:当我转换到另一个链接时,“导航栏”中的链接彼此重叠。例如,我有一个导航栏菜单,有四个不同的链接:主页、目录、分销商和联系人,“主页”是一个基本网页。也就是说,当我从基本网页过渡到目录时,我得到了这一切,但随后我过渡到“分销商”部分,然后我得到了这一点,如何纠正这一点是不正常的? 我的url模式似乎是正确的:/

   urlpatterns = [
   url(r'^$', views.home, name='home'),
   url(r'^catalog/$', views.catalog, name='catalog'),
   url(r'^distributors/$', views.distributors, name='distributors'),
   url(r'^contacts/$', views.contacts, name='Contacts'),
   ]

template:
<div class="header">
  <div id="inner">
    <div class="col">
        <div class="inner">
            <div class="image"><p><a href="/">HOME</a></p></div>
            <div class="filter1"></div>
            <div class="filter2"></div>
            <div class="txt">
              <p>We greet you on the main</p>
              <p>page of our website!</p>
            </div>
        </div>
    </div>
    <div class="col">
        <div class="inner">
            <div class="image"><p><a href="catalog">CATALOG</a></p></div>
            <div class="filter1"></div>
            <div class="filter2"></div>
            <div class="txt">
              <p>Browse through our catalog</p>
              <p>and select the good just for you.</p>
            </div>
        </div>
    </div>
    <div class="col">
        <div class="inner">
            <div class="image"><p><a href="distributors">DISTRIBUTORS</a></p></div>
            <div class="filter1"></div>
            <div class="filter2"></div>
            <div class="txt">
              <p>We are currently expanding our</p>
              <p>distributor network into new markets.</p>
            </div>
        </div>
    </div>
    <div class="col">
        <div class="inner">
            <div class="image"><p><a href="contacts">CONTACTS</a></p></div>
            <div class="filter1"></div>
            <div class="filter2"></div>
            <div class="txt">
              <p>You can always communicate with us</p>
              <p>using section "Contacts". </p>
            </div>
        </div>
    </div>
  </div>
</div>

views:
def home(request):
products_images = ProductImage.objects.filter(is_active=True, is_main=True, product__is_active=True)
products_images_with = products_images.filter(product__category__id=1)
products_images_without = products_images.filter(product__category__id=2)
return render(request, 'landing/home.html', locals())

def catalog(request):
products_images = ProductImage.objects.filter(is_active=True, is_main=True, product__is_active=True)
return render(request, 'landing/catalog.html', locals())

def distributors(request):
return render(request, 'landing/distributors.html', locals())

def contacts(request):
return render(request, 'landing/Contacts.html', locals())

有人能帮我解决这个问题吗?Django版本1.11.2

问题在于在Django模板中使用链接的方式

看看:

您必须在此处使用{%url'url名称'%},这样Django将自行构建url

例如,在您的情况下:

<div class="image"><p><a href="{% url 'catalog'%}">CATALOG</a></p></div>
这样:

这对您来说容易多了,您只需提供url名称,然后让Django生成真实的url。 你不要重复你自己;如果要更改url的路径,只需在url.py中更改一次。
正如@David D.所回答的,您应该使用url构建方法,因为它为您提供了灵活性

但是,如果出于某种原因,您希望在href中指定绝对url,那么在使用绝对url时,可以通过在分配给href时为每个url名称添加正斜杠来解决上述问题

因此,您的新URL应该如下所示:

<a href="/catalog">CATALOG</a>
<a href="/distributors">DISTRIBUTORS</a>
<a href="/contacts">CONTACTS</a>

它工作的原因是/代表网站的根目录,因此使用“/”将您路由到根目录,使用“/catalog”将您直接从根目录路由到目录页面。

Hello。你能用包含“分销商”部分链接的代码更新你的问题吗?错误可能出现在视图或模板中,而不是URL声明中。添加内容非常感谢您的帮助和详细信息!现在没事了,不客气。如果你有时间的话,你可以做一些关于这个概念和其他很多概念的讨论。