我希望开发一个基于小类的视图,使用django过滤器和django tables2以表格形式生成报告。
我正在遵循本指南。 http://www.craigderington.me/django-generic-listview-with-django-filters-and-django-tables2/
我的代码生成表以及过滤它但是当我点击搜索按钮时,它在终端中给出HTTP 405错误并显示空白页面。这是我的代码。我如何解决它使它工作?
IssueListView类
class IssueListView(PagedFilteredTableView):
model = Issue
template_name = 'issue_list.html'
context_object_name = 'issue_list'
ordering = ['id']
table_class = IssueTable
filter_class = IssueFilter
formhelper_class = IssueListFormHelper
def get_queryset(self):
qs = super(IssueListView,
self).get_queryset()
return qs
def post(self,request,*args,**kwargs):
return PagedFilteredTableView.as_view()(request)
def get_context_data(self,**kwargs):
context = super(IssueListView,
self).get_context_data(**kwargs)
search_query = self.get_queryset()
table = IssueTable(search_query)
RequestConfig(self.request,paginate={'per_page':30}).configure(table)
context['table'] = table
return context
PagedFilteredTableView类
class PagedFilteredTableView(SingleTableView):
filter_class = None
formhelper_class = None
context_filter_name = 'filter'
def get_queryset(self,**kwargs):
qs = super(PagedFilteredTableView,
self).get_queryset()
self.filter = self.filter_class(self.request.GET,queryset=qs)
self.filter.form.helper = self.formhelper_class()
return self.filter.qs
def get_context_data(self,**kwargs):
context = super(PagedFilteredTableView,
self).get_context_data()
context[self.context_filter_name] = self.filter
return context
模板具有以下形式,其中包含用于搜索显示的表格/报告的POST方法
<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>
Urls.py包含以下行
url(r'^$',views.IssueListView.as_view(),name = 'index'),