我是 Django 新手,目前正在为我的朋友做一个网站。他希望我制作一个系统,用户可以在其中搜索数据库,网站根据序列号提供相关项目。我按照以下网站的教程进行操作:https://learndjango.com/tutorials/django-search-tutorial来了解如何进行数据库搜索,这很有帮助,但我仍然遇到问题:我的搜索栏有效,并且结果页面也可以工作,但只有当我自己在搜索栏上手动输入查询时才有效(例如 results/?q=number1)。但是,当我使用输入栏和提交按钮进行搜索时,它会将我发送到 /results/ 页面,并且该页面给出以下内容:
该页面无法正常工作
如果问题仍然存在,请联系网站所有者。
HTTP 错误 405
-当我打开 pycharm 查看终端中的错误时,它显示:
Method Not Allowed (POST): /result/
Method Not Allowed: /result/
[27/Oct/2020 20:06:02] "POST /result/ HTTP/1.1" 405 0
这是我的代码(python3.7,pycharm)网站/网址:
from . import views
from django.urls import path
from django.contrib.auth import views as auth_views
urlpatterns = [
path('register/',views.UserFormView.as_view(), name='register'),
path('login/', auth_views.LoginView.as_view(), name='login'),
path('', views.IndexViews.as_view(), name='index'),
path('scan/', views.ScanView.as_view(), name='scan'),
path('result/', views.SearchResultsView.as_view(), name='result'),
]
网站/浏览量:
class IndexViews(generic.ListView):
template_name = "websites/index.html"
context_object_name = "object_list"
def get_queryset(self):
return Website.objects.all()
class ScanView(TemplateView):
form_class = SerialFrom
template_name = 'websites/scan.html'
class SearchResultsView(ListView):
model = SerialNumber
template_name = 'websites/result.html'
def get_queryset(self): # new
query = self.request.GET.get('q')
context = self.get_context_data(object=self.object)
object_list = SerialNumber.objects.filter(
Q(number__iexact=query)
)
return object_list
扫描.html:
{% extends 'websites/base.html' %}
{% block albums_active %}active{% endblock %}
{% block body %}
<head>
<meta charset="UTF-8">
<title>Scan</title>
<link rel="stylesheet" href="style.css">
</head>
感谢您花时间阅读,请帮助我,我真的需要这样做。
喵喔喔
相关分类