我的 django 模板导航栏无法正常工作

Posted

技术标签:

【中文标题】我的 django 模板导航栏无法正常工作【英文标题】:My django template navbar is not working properly 【发布时间】:2020-03-31 07:14:31 【问题描述】:

这里我有两个名为 base.html 的模板,contact.html.contact.html 扩展了 base.html。我只有这两个模板。当我单击 blog 或 about 时,它会将我滚动到 about 部分或 blog 部分。

但问题是在访问联系页面时,当我尝试点击导航栏主页或联系页面中的任何网址时,它不会去任何地方。我该如何解决这个问题?

当我在 base.html 中时,它有 url 127.0.0.1/#blogs 但在联系页面中 127.0.0.1/contact/#blogs

对不起,我的英语不好。

urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',views.home,name='home'),
    path('contact/', views.contact, name='contact'),

views.py

def home(request):
    abt_me = Me.objects.order_by('-created').first()

    return render(request,'base.html','abt':abt_me)

def contact(request):
    form = ContactForm()
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            contact = form.save()
            messages.success(request, 'Hello !. Your message has been sent successfully'.format(contact.full_name))
            return redirect('contact')

    return render(request,'contact.html','form':form)

base.html

  <nav class="site-navigation position-relative text-right" role="navigation">
              <ul class="site-menu main-menu js-clone-nav mr-auto d-none d-lg-block">
                <li><a href="#home" class="nav-link">Home</a></li>
                <li><a href="#blogs" class="nav-link">Blog</a></li>
                <li><a href="#about" class="nav-link">About</a></li>
                <li><a href="% url 'contact' %" class="nav-link">Contact</a></li>


              </ul>
            </nav>
<div class="site-section" id="about">
      <div class="container">
        <div class="row ">

contact.html

% extends 'base.html' %
% load static %


% block content %
<section class="site-section">

【问题讨论】:

为什么应该去任何地方?链接都指向同一个页面。如果该页面不包含博客或关于部分,则无处可去。 @DanielRoseman 那么这个问题没有解决方案吗? 当然有解决办法。但你真正想要发生什么? @DanielRoseman 那我该怎么办?有什么建议吗? 当我点击来自contact.html 的导航链接时,我想转到那个点击的链接。现在它只能从base.html 工作 【参考方案1】:

您的主页应该是 127.0.0.1/ 和它的 this; path('',views.home,name='home'),

也许您可以尝试更改 base.html 和 contact.html 包括。因为您的家庭方法工作 base.html,它应该是 include extends

【讨论】:

【参考方案2】:

尝试改变这个:

<li><a href="#home" class="nav-link">Home</a></li>

用这个:

<li><a href="% url 'home' %" class="nav-link">Home</a></li>

【讨论】:

以上是关于我的 django 模板导航栏无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

由于侧边栏和导航栏,React 中的未找到页面无法正常工作

UIPageViewController 中导航栏的更改无法正常工作

导航栏在 UIPageController 下无法正常工作?

导航栏改变颜色javascript无法正常工作

导航链接在导航栏中不起作用(Bootstrap)(Django)

Django - 根据网页更改活动导航栏模板