Django 从数据库中提取数据导致404找不到页面错误
我试图以这样一种方式过滤我的观点,即当选择一个特定的学校时,该学校的pk将被放置在一个名为major的视图函数中,该函数将进一步查询db以显示与该学校对应的适当专业 我现在得到了一个页面未找到404错误,无法找出原因 url.pyDjango 从数据库中提取数据导致404找不到页面错误,django,python-3.x,django-templates,Django,Python 3.x,Django Templates,我试图以这样一种方式过滤我的观点,即当选择一个特定的学校时,该学校的pk将被放置在一个名为major的视图函数中,该函数将进一步查询db以显示与该学校对应的适当专业 我现在得到了一个页面未找到404错误,无法找出原因 url.py from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('<int:Major&g
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('<int:Major>/', views.Major, name='Major')
]
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path(' <int:school_pk>/', views.Major, name='Major')
]
views.py
from django.http import HttpResponse
from django.shortcuts import render
from .models import professor, School, Major, School_Major
def index(request):
schools = School.objects.all()
return render(request, 'locate/index.html', {'schools': schools})
def Major(request, school_pk):
#Filter to a show the association of 1 schools majors
school_choice = Major_School.objects.filter(school_id = school_pk)
#Filter majors names required
majors = Major.objects.filter(id = school_choice.major_id)
return render(request, 'locate/major.html', {'majors' : majors})
我将发布索引文件的代码,该文件在下面提取学校信息,当单击学校(超链接集)时,它基本上会将学校的主键传递到主功能中,然后进行进一步过滤
<ul>
{% for list in schools %}
<li><a href="{% url 'Major' {{list.id}}">{{list.name}}</a></li>
<br><br>
{%endfor%}
</ul>
更新:
我是根据下面的建议来做的,我举了一个例子,我为index.html设置的格式对于调度器来说是合适的,而且调度器也设置得很好,但是为什么{%仍然会弹出呢?我不明白,我重新启动了服务器,认为它可能有问题,但是nada
index.html
{% for list in schools %}
<li><a href="{% url 'Major' 'list.id' %}">{{list.name}}</a></li>
<br><br>
{%endfor%}
{%用于学校中的列表%}
{%endfor%}
url.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('<int:school_pk>/', views.Major, name='Major')
]
从django.url导入路径
从。导入视图
URL模式=[
路径(“”,views.index,name='index'),
路径(“/”,views.Major,name='Major')
]
我当前遇到的路径错误仍然是相同的,但我不明白的是,在将模板修复为正确的格式后(我还使用了一个示例项目作为参考,它没有传递参数的问题),我传递的不仅仅是/locate/school\u pk,而是花括号和%
locate/ [name='index']
locate/ <int:school_pk>/ [name='Major'] <== This one
admin/
register/ [name='register']
profile/ [name='profile']
login/ [name='login']
logout/ [name='logout']
[name='blog-home']
about/ [name='blog-about']
post/<int:pk>/ [name='post-detail']
post/new/ [name='post-create']
post/<int:pk>/update/ [name='post-update']
post/<int:pk>/delete/ [name='post-delete']
user/<str:username> [name='user-posts']
^media/(?P<path>.*)$
The current path, locate/{% url 'Major' 1/, didn't match any of these.
locate/[name='index']
locate//[name='Major']我认为模板应该是:
<li><a href="{% url 'Major' list.id %}">{{list.name}}</a></li>
其中URL如下所示:
path('<int:school_pk>/', views.Major, name='Major')
path('/',views.Major,name='Major')
参考请查看。我认为模板应该是:
<li><a href="{% url 'Major' list.id %}">{{list.name}}</a></li>
其中URL如下所示:
path('<int:school_pk>/', views.Major, name='Major')
path('/',views.Major,name='Major')
请检查For循环中的。以供参考
<ul>
{% for list in schools %}
<li><a href="{% url 'Major' list.id">{{list.name}}</a></li>
<br><br>
{%endfor%}
</ul>
{学校列表中的百分比%}
{%endfor%}
只需删除for循环中的双大括号{{}
,就可以了
<ul>
{% for list in schools %}
<li><a href="{% url 'Major' list.id">{{list.name}}</a></li>
<br><br>
{%endfor%}
</ul>
{学校列表中的百分比%}
{%endfor%}
只需删除双大括号{{}
,因此我注意到错误消息中这个特定的url调度程序之间有一个空格
locate/ [name='index']
locate/ <int:school_pk>/ [name='Major'] <== This one
admin/
register/ [name='register']
profile/ [name='profile']
login/ [name='login']
logout/ [name='logout']
[name='blog-home']
about/ [name='blog-about']
post/<int:pk>/ [name='post-detail']
post/new/ [name='post-create']
post/<int:pk>/update/ [name='post-update']
post/<int:pk>/delete/ [name='post-delete']
user/<str:username> [name='user-posts']
^media/(?P<path>.*)$
The current path, locate/{% url 'Major' 1/, didn't match any of these.
locate/[name='index']
找到//[name='Major'],因此我注意到错误消息中这个特定的url调度程序之间有一个空格
locate/ [name='index']
locate/ <int:school_pk>/ [name='Major'] <== This one
admin/
register/ [name='register']
profile/ [name='profile']
login/ [name='login']
logout/ [name='logout']
[name='blog-home']
about/ [name='blog-about']
post/<int:pk>/ [name='post-detail']
post/new/ [name='post-create']
post/<int:pk>/update/ [name='post-update']
post/<int:pk>/delete/ [name='post-delete']
user/<str:username> [name='user-posts']
^media/(?P<path>.*)$
The current path, locate/{% url 'Major' 1/, didn't match any of these.
locate/[name='index']
locate/[name='Major']我尝试了不起作用的方法我会检查文档引用,我还注意到我在list.id之后输入了一个我应该输入%}的错误。我尝试了不起作用的方法我会检查文档引用,我还注意到我在list.id之后输入了一个我应该输入%}的错误,它不起作用我注意到现在花括号试图在url中被查询,这是奇怪的,我在我的更新中发布了它不起作用我注意到现在花括号试图在url中被查询,这是奇怪的,我在我的更新中发布了