django泛型视图在生成报表和表时会出现HTTP 405错误

时间:2016-07-13 13:16:39

标签: python django class filter

我希望开发一个基于小类的视图,使用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'),

0 个答案:

没有答案