Thursday, 12 July 2018

Django view for form factory

def create_question(request, poll_id):
    queryset = Poll.objects.filter(poll_id=poll_id)
    project_code = request.session['project_code']
    if request.POST:
        form = QuestionForm(request.POST)
        AnswersFormSet = formset_factory(AnswersForm)
        formset = AnswersFormSet(request.POST)
        if form.is_valid() and formset.is_valid():

            obj = form.save(commit=True)
            obj.project_code = Project.objects.get(project_code=project_code)
            obj.poll = Poll.objects.get(poll_id=poll_id)
            obj.save()
            for frm in formset:
                try:
                    if frm.is_valid():
                        print frm
                        s = Answers()
                        s.question_id =  obj.id
                        s.answer = frm.cleaned_data['answer']
                        s.save()

                except KeyError:
                    pass
            messages.success(request, 'Question create successfully')
            return redirect('screencultures:question_list',poll_id)
        else:
            return render(request, 'create_question.html', {'formset':formset, 'form': form, 'project_code': project_code, 'queryset': queryset, 'poll_id': poll_id})
    else:
        formset = formset_factory(form=AnswersForm, extra=9)
        form = QuestionForm()
        return render(request, 'create_question.html', {'form': form, 'project_code': project_code, 'queryset': queryset, 'poll_id': poll_id, 'formset' : formset})

No comments:

Post a Comment

Django rest api - filter

views.py from django_filters.rest_framework import DjangoFilterBackend class PollList(viewsets.ModelViewSet):     queryset = X.objects...