2016-03-22 6 views
0

hinzufügt Ich habe eine einzige Bootstrap-Vorlage mit allen Abschnitten wie "Über", "Kontakt" und andere als Teil einer einzigen Datei. Das Problem kommt mit der Menüleiste, da ich die Vererbung von django für Vorlagen verwende, um die Menüleiste einzubinden (deklariert in home_menubar.html) und ich benutze die Zeile {% include 'home/home_menubar.html' %} auf allen meinen Webseiten für die Menüleiste.Wie man Parameter der Homepage URL in Django

Das Problem ist, dass ich bestimmte URLs für alle Kategorien in der Menüleiste deklarieren musste, um die gleiche HTML-Datei für die Anzeige eines bestimmten Abschnitts auf der Seite wie wenn ich die About-Spalte besuchen möchte. Die URL wäre localhost:8000/about/#aboutus

Diese URL sieht ist krank mich. Gibt es eine Möglichkeit, die URL würde localhost:8000/#aboutus ??

Update 1: Ich verwende die home_menubar.html Datei in vielen Webseiten wie login.html, register.html usw. Also, wenn ich

  • über
  • ausgegeben, dann in dieser URL: localhost:8000/login/ und über den Menüpunkt angeklickt wird, wird es localhost:8000/login/#about, die nicht existiert.

    Einige Code:

    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"), 
    

    Antwort

    2

    Ich verstehe nicht, warum Sie den Blick auf alle sind Duplizieren ...

    Warum nicht einfach eine einzelne Homepage Blick:

    def show_homepage(request): 
        return render(request, 'home/homepage.html') 
    

    mit begleitender URL:

    url(r'^$', views.show_homepage, name="web_root"), 
    

    Und dann in 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> 
    
    +0

    würde es in ** jeder ** webpage funktionieren, der ich die vorlagendatei beilege? wie Login-Seite oder etwas? –

    +0

    Ich habe den Code aktualisiert, damit er in diesem Szenario funktioniert. Alternativ können Sie Folgendes verwenden, um sicherzustellen, dass es überall funktioniert: 'About' – rnevius

    +0

    das hat es getan. Ich danke dir sehr. –