get()缺少1个必需的位置参数:“ key”

时间:2019-01-14 11:52:29

标签: django django-models django-forms django-templates django-views

我收到错误消息是因为我想发布templateclass中的表格。我可以显示表单,但无法获取帖子值

JobListView(LoginRequiredMixin, generic.TemplateView):
    template_name = 'admin/jobs/job.html'

    def get_context_data(self, **kwargs):   
        context = super(JobListView, self).get_context_data(**kwargs)
        company_name = self.request.user.userprofile.user_company
        context['jobs'] = Jobs.objects.exclude(
                                job_is_deleted = True
                            ).filter(
                                job_company=self.request.user.userprofile.user_company
                            )
        context['form'] = JobSearchForm()
        # form = self.request.POST.get()
        # print(form)
        return context

    def post(self, request, *args, **kwargs):
        form = self.request.POST.get()
        print(form)
        return HttpResponseRedirect('/jobs/')

1 个答案:

答案 0 :(得分:0)

我认为您使用的是错误的通用视图。在这里,您可以使用FormViewCreateView(如果有模型)。您可以在FormView中尝试这样:

class JobListView(LoginRequiredMixin, generic.FormView):
    template_name = 'admin/jobs/job.html'
    form_class = JobSearchForm
    success_url = '/jobs/'

    def form_valid(self, form):
        data = form.cleaned_data
        # do something with data
        return super(JobListView, self).form_valid(form)  # will redirect to success url

    def get_context_data(self, **kwargs):   
        context = super(JobListView, self).get_context_data(**kwargs)
        company_name = self.request.user.userprofile.user_company
        context['jobs'] = Jobs.objects.exclude(
                                job_is_deleted = True
                            ).filter(
                                job_company=self.request.user.userprofile.user_company
                            )
        return context