简体   繁体   中英

Page not found (404) django

Can anyone help me with this issue. When I try to access I get the following error.

Request Method: GET Request URL:
Using the URLconf defined in myproject.urls, Django tried these URL patterns, in this order: ^admin/ ^myproject/$ [name='home'] The current URL, , didn't match any of these. You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

urls.py

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

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
# Examples:
#url(r'^$', 'myproject.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),

url(r'^admin/', include(admin.site.urls)),
url(r'^booking/$', 'booking.views.home', name ='home'),
)

views.py

from django.shortcuts import render
#..

# Create your views here.
def index(request):
    return render("Hello, guesthouse!!")

settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'booking',
)
ROOT_URLCONF = 'myproject.urls'

WSGI_APPLICATION = 'myproject.wsgi.application'

admin.py

from django.contrib import admin
from booking.models import Bookings


# Register your models here.
admin.site.register(Bookings)

Thank you, Rads

You are getting 404 because 'home' doesn't exist in views.py or by mistake, you have named the view wrong.

below i have changed the name of view to 'home' that matches the view specified in your urls.py

views.py

from django.shortcuts import render

def home(request):
    """
      home view
    """
    return render("Hello, guesthouse!!")

You don't appear to have a home function in booking.views .

Expanded answer: Each URL spec has a couple of parts that tell Django how to route the request. In your post you have:

url(r'^booking/$', 'booking.views.home', name ='home'),

In order for the mapping to work you need to have the function:

booking.views.home

You have three options here, the first is to implement another view function, the second is that you can rename booking.views.index to booking.views.home , and the third is that you can change the url spec to the following:

url(r'^booking/$', 'booking.views.index', name ='home'),

All three of these options assume that you have a directory structure like:

|-<project_root_dir>
|   |
|   |- <project>
|   |- booking
|   |     |- <other files>
|   |     |- views.py

Your error is in urls.py. Your last pattern is incorrect. I think it should be

url(r'^booking/$', 'booking.views.index'),

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM