django url给页面未找到(404)错误

时间:2019-07-10 17:12:10

标签: django django-urls

我从datacamp教程创建的表决应用程序出现页面未找到(404)错误。我已经检查了我的代码,以确保它没有错误。管理员工作正常,但其他网址却不行。

这是主应用程序目录中的urls.py代码:

from django.urls import include, path
from django.contrib import admin

urlpatterns = [
        path('blog/', include('blog.urls')),
        path('votings/',include('votings.urls')),
        path('admin/', admin.site.urls),
]

这是来自表决应用程序目录中的urls.py:

from django.urls import path
from . import views

urlpatterns = [
        path('',views.index, name='index'),
        path('<int:question_id>/',views.detail, name='detail'),
        path('<int:question_id>/results/', views.results, name='results'),
        path('<int:question_id>/vote/', views.vote, name='vote'),
]

我正在使用Django 2.0.5。

谢谢

1 个答案:

答案 0 :(得分:0)

除非您为复制错误的@if(isset($userdata)) @foreach($userdata as $data) <tbody> <tr> <td>{{ $data->id }}</td> <td>{{ $data->email }}</td> <td>{{ $data->created_at }}</td> <td>{{ $data->role }}</td> <td>{{ $data->status }}</td> <td> <a href="{{ route('admin.auseredit',$data->id)}}" class="btn btn-primary">Edit</a> </td> <td> @csrf @method('DELETE') <button class="btn btn-danger" type="submit">Delete</button> </td> </tr> </tbody> @endforeach @endif 投票应用程序犯了一个错误,否则问题就一定出在这里。

这是您项目的主要urls.py:

urls.py

仅供参考,根据docs from django.urls import include, path from django.contrib import admin urlpatterns = [ path('blog/', include('blog.urls')), path('votings/',include('votings.urls')), path('admin/', admin.site.urls), ] ,您将应用目录中的urls.py(在您的情况下为投票)添加到主urls.py(在内存中)。这样可以防止主要urls.py太大而无法阅读。

这是您的投票应用的urls.py,实际上是主要urls.py 的副本:

include()

您在这里看不到任何问题吗?没有终点。该URL的关联视图(基于函数或基于类)在哪里?

我建议在您的views.py中编写一个视图并进行测试:

投票应用views.py:

from django.urls import include, path
from django.contrib import admin

urlpatterns = [
        path('blog/', include('blog.urls')),
        path('votings/',include('votings.urls')),
        path('admin/', admin.site.urls),
]

投票应用urls.py:

from django.http import HttpResponse
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)