2016-05-07 5 views
1

ich andere Seiten überprüft es, um herauszufinden, und ich sah URL dispatcher konnte aber keine Lösung für dieses.Django 1.9 Web-Seite umleiten nicht oder ändern

Wenn ich auf die Seite von navbar passiert nichts zu ändern. Die Startseite ist auf die Header.html erweitert, andere nicht. Infact, wenn ich auf einen anderen Knopf klicke, ändere die Seite, die es still bleibt. Hier sind meine Codes;

home/erste/views.py

from django.shortcuts import render 


def index(request): 
    return render(request, 'first/home.html') 

def contact(request): 
    return render(request, 'first/iletisim.html', {'content':['Eger bizimle iletisime gecmek isterseniz mail adresimizi kullanabilirsiniz.', '[email protected]']}) 

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

home/erste/urls.py

from django.conf.urls import url, include 
from . import views 


urlpatterns = [ 
    url(r'^', views.index, name = 'index'), 
    url(r'^home/', views.index, name = 'home'), 
    url(r'^contact/', views.contact, name = 'iletisim'), 
] 

Haupt urls.py

from django.conf.urls import url, include 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^', include('first.urls')), 
    url(r'^blog/', include('blog.urls')), 
] 

LÖSUNG:

Wie Adam sagte unten; Wenn Sie dieses Problem haben, ändern Sie die Reihenfolge home/first/urls.py für views.index.

+0

Versuchen Sie, Ihren Index auf den Grund Ihrer URL-Muster zu bewegen? Es sollte die URLs der Reihe nach überprüfen, so dass es wahrscheinlich zuerst mit dem übereinstimmt. –

+1

Das war schlau. Das hat funktioniert, danke! –

Antwort

0

Ihre erste URL holt alles. Im Wesentlichen heißt es, wenn die URL einen Start hat, sende an den Index.

Da es die erste URL in der Liste ist, ist es immer, dass geht zu fangen zuerst, da es die URL-Muster geht durch und findet die ersten sie paßt. Wie Sie im Kommentar herausgefunden haben, wenn Sie es nach unten bewegen, wenn Sie gehen entweder home/ oder contact/ es wird diese zuerst fangen.

Allerdings werden Sie immer noch ein Problem damit haben, denn wenn Sie zu asdfblahblah/ oder etwas gehen, wird es immer noch zu fangen. Was Sie tun sollten, ist ein $ hinzuzufügen, um zu zeigen, dass in der URL nichts enthalten sein sollte, um zum Index zu routen. Diese Regex sagt, wenn es einen Anfang und ein Ende gibt, und nichts dazwischen, Route zum Index.

urlpatterns = [ 
    url(r'^$', views.index, name = 'index'), 
    url(r'^home/', views.index, name = 'home'), 
    url(r'^contact/', views.contact, name = 'iletisim'), 
] 
+0

Ich wollte so bleiben, denn wenn jemand tippt und etwas hinzufügt, will ich immer noch, dass sie die Homepage sehen. Ich habe das bewusst gemacht. Andere, denkst du, wird es ein Problem mit meiner Aktion geben? Danke für Ihre Antwort im Allgemeinen könnte es Menschen helfen. –

+0

Nein, sollte kein Problem sein, wenn Sie möchten, dass alle nicht aufgelisteten URLs in die Indexansicht gehen. Stellen Sie nur sicher, dass alle URLs vor dem Catch-All aufgeführt sind - einschließlich Ihrer anderen Apps, die Sie einschließen. – awwester

+0

Okey danke nochmal :) –

Verwandte Themen