为什么我在django项目中获得404?

时间:2018-03-27 03:54:12

标签: django

所以我有一个页面,我想在项目的详细信息部分之后呈现。我的urls.py如下:

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

app_name = 'main'

urlpatterns = [
    url(r'^home/', views.home, name='home'),    # Home page
    url(r'incubators/$', views.incubators, name='incubators'),    # Incubator list page
    url(r'about/', views.about, name='about'),          # Websie about page
    url(r'results', views.result, name = 'result'),         # For search function
    url(r'incubators/(?P<incubator_id>[0-9]+)/', views.details, name = 'details'),      # shows details of incubators
    url(r'incubators/add-incuabtor/$', views.AddIncubator.as_view(), name = 'add-incubator'),     # Adding Inc
    url(r'/add-details/', views.AddDetails.as_view(), name = 'add-details'), #for additional details
    url(r'news/', views.news, name = 'news'),
    url(r'added/', views.added, name = 'added'),      #your incubator will be added soon page
    url(r'apply/', views.apply, name = 'apply'),
    url(r'done/', views.done, name = 'done'),
    url(r'location/', views.location, name = 'location'),
    url(r'prediction/', views.prediction, name = 'prediction'),
    url(r'^/locate/', views.locate, name = 'locate'),
]

我想打开一个页面(显示在details.html中),该页面将显示该特定元素的一些信息(在我的情况下是纬度和经度)。 以下是我的views.py

def details(request, incubator_id):
    inc = get_object_or_404(Incubators, pk = incubator_id)
    details = Details.objects.get(pk = incubator_id)
    return render(request, 'main/details.html', {'inc': inc, 'details': details})

def locate(request):
    locate = get_object_or_404(Incubators, pk = incubator_id)
    return render(request, 'main/locate.html', {'locate': locate})

但是我收到以下错误:

NameError at //locate/

name 'incubator_id' is not defined

Request Method:     GET
Request URL:    http://127.0.0.1:8000//locate/
Django Version:     1.11.3
Exception Type:     NameError
Exception Value:    

name 'incubator_id' is not defined

Exception Location:     C:\Users\my dell\Desktop\Project\junityme\main\views.py in locate, line 137
Python Executable:  C:\Users\my dell\AppData\Local\Programs\Python\Python36-32\python.exe

Using the URLconf defined in Ekyam.urls, Django tried these URL patterns, in this order:

我认为我在为此制作网址时犯了一些错误。帮助将受到关注。

1 个答案:

答案 0 :(得分:2)

http://127.0.0.1:8000//locate/将寻找以“locate”开头的网址格式,但您没有任何以locate开头的网址格式。 URL应与模式匹配,而不是您提供的名称或视图名称。