Получение данных из запроса POST - PullRequest
0 голосов
/ 05 октября 2019

POST-данные не всегда влияют на мою логику, несмотря на правильное обновление модели django

def new_record(request):
    form = RecordForm(request.POST or None)

    if request.method == 'POST':
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/new_record')
        else:
            form = RecordForm()

    item1 = request.POST.getlist('checkbox_1')
    item2 = request.POST.getlist('checkbox_2')
    item3 = request.POST.getlist('checkbox_3')

    print(item1)
    print(item2)
    print(item3)

    if 'on' in item1:
        print("Checkbox 1 is true")
        write_pdf_view(textobject='textobject', exam_record_number='123')
    else:
        print("Checkbox 1 is False")

    if 'on' in item2:
        print("Checkbox 2 is true")
    else:
        print("Checkbox 2 is False")

    if 'on' in item3:
        print("Checkbox 3 is true")
    else:
        print("Checkbox 3 is False")


    return render(request=request,
                  template_name='main/new_record.html',
                  context={"form": form}
                  )

В основном я надеюсь проверить, установлен ли флажок, и передать значение в функцию, еслиэто правда, сейчас я установил значения y write_pdf_view для чего-то, что, как я знаю, существует, и это тоже не работает (я импортировал это выше)

Я чувствую, что это может быть тривиально для кого-то с опытом, яновый любитель просто хочет учиться! Любая помощь высоко ценится.

1 Ответ

0 голосов
/ 05 октября 2019

Ваши операторы if выполняются во время GET, а не POST.

Я бы рекомендовал структурировать ваш код, используя структуру представлений на основе классов, следующим образом:

from django.views import View

class NewRecord(View):

    def get(self, request):
        return render(request, 'main/new_record.html', {'form': RecordForm})

    def post(self, request):
        form = RecordForm(request.POST)

        if form.is_valid():
            form.save()

        item1 = request.POST.get('checkbox_1', None)
        ##place the rest of your logic here

        return HttpResponseRedirect('/new_record')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...