方法不允许 (POST) - 搜索
Method Not Allowed (POST) - search
任务:在 django-table 之上添加简单搜索以过滤它的值。
问题:f^tup 某处并在将值放入搜索后传递请求时出现此错误 window:
Method Not Allowed (POST): /warscrolls/
[22/Jun/2018 10:27:17] "POST /warscrolls/ HTTP/1.1" 405 0
我的url是这样的:
url(r'^warscrolls/$', ScrollListView.as_view(filter_class=ScrollListFilter,
template_name='scroll_list.html'), name='warscrolls'),
我在 html 模板中的搜索表单如下所示:
<form method="post" class="form-inline form-search pull-right">
{% csrf_token %}
<div>
<input id="search_form_id" name="search" type="text" class="form-control col-md-3" placeholder="ID, Name, Account #, ZIP"{% if search %} value="{{ search }}"{% endif %}>
<button type="submit" class="btn btn-small btn-dark"><i class="fa fa-search"></i> Search</button>
</div>
</form>
我错过了什么?
要启用 POST
请求,您基于 class 的视图应实现 post()
方法。但是 django ListView
class 默认情况下没有实现 post()
方法,这会引发错误。
实际上,通常的做法是使用 GET
请求搜索选项,因此要修复错误,您可以像这样简单地更新 html 表单:
<form method="get" class="form-inline form-search pull-right">
<div>
<input id="search_form_id" name="search" type="text" class="form-control col-md-3" placeholder="ID, Name, Account #, ZIP"{% if search %} value="{{ search }}"{% endif %}>
<button type="submit" class="btn btn-small btn-dark"><i class="fa fa-search"></i> Search</button>
</div>
</form>
任务:在 django-table 之上添加简单搜索以过滤它的值。
问题:f^tup 某处并在将值放入搜索后传递请求时出现此错误 window:
Method Not Allowed (POST): /warscrolls/
[22/Jun/2018 10:27:17] "POST /warscrolls/ HTTP/1.1" 405 0
我的url是这样的:
url(r'^warscrolls/$', ScrollListView.as_view(filter_class=ScrollListFilter,
template_name='scroll_list.html'), name='warscrolls'),
我在 html 模板中的搜索表单如下所示:
<form method="post" class="form-inline form-search pull-right">
{% csrf_token %}
<div>
<input id="search_form_id" name="search" type="text" class="form-control col-md-3" placeholder="ID, Name, Account #, ZIP"{% if search %} value="{{ search }}"{% endif %}>
<button type="submit" class="btn btn-small btn-dark"><i class="fa fa-search"></i> Search</button>
</div>
</form>
我错过了什么?
要启用 POST
请求,您基于 class 的视图应实现 post()
方法。但是 django ListView
class 默认情况下没有实现 post()
方法,这会引发错误。
实际上,通常的做法是使用 GET
请求搜索选项,因此要修复错误,您可以像这样简单地更新 html 表单:
<form method="get" class="form-inline form-search pull-right">
<div>
<input id="search_form_id" name="search" type="text" class="form-control col-md-3" placeholder="ID, Name, Account #, ZIP"{% if search %} value="{{ search }}"{% endif %}>
<button type="submit" class="btn btn-small btn-dark"><i class="fa fa-search"></i> Search</button>
</div>
</form>