Передать данные поста, чтобы получить () - Django - PullRequest
0 голосов
/ 17 января 2019

У меня есть JobListView, в котором я перечисляю данные, а также отображаю форму. Теперь, когда я отправляю сообщение, я сразу перенаправлен на ту же страницу. Но теперь я хочу отфильтровать запрос рабочих мест. Поэтому мне нужны эти данные в get(). Я могу напечатать status, который идет от JobSearchForm в post(). Но не может отправить это status в get().

Причина, по которой я хочу это сделать, заключается в том, что я хочу отфильтровать запрос jobs, чтобы отображался только определенный список. Если у вас есть лучший подход, пожалуйста, предложите мне.

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

    def get(self, request, *args, **kwargs):
        context = super(JobListView, self).get_context_data(**kwargs)

        company_name = self.request.user.userprofile.user_company
        jobs = Jobs.objects.exclude(job_is_deleted = True).filter(job_company=self.request.user.userprofile.user_company)
        form = JobSearchForm()

        return render(request, self.template_name, {'form': form, 'jobs': jobs})

    def post(self, request, *args, **kwargs):

        form = JobSearchForm(request.POST)
        if form.is_valid():
            status = form.cleaned_data['status']
            print (status)

        return HttpResponseRedirect('/useradmin/job/')

1 Ответ

0 голосов
/ 17 января 2019

Всегда лучше использовать запрос get для осуществления поиска. Кроме того, я полагаю, вам не нужна форма.

def get(self, request, *args, **kwargs):
    context = super(JobListView, self).get_context_data(**kwargs)
    status = request.GET.get('status')
    company_name = self.request.user.userprofile.user_company
    jobs = Jobs.objects.exclude(job_is_deleted = True).filter(job_company=self.request.user.userprofile.user_company)
    if status:
        jobs.filter() # filter queryset using status
    return render(request, self.template_name, {'jobs': jobs})
...