Кнопка многократной отправки на одной форме в Django - PullRequest
0 голосов
/ 15 октября 2018

В форме у меня есть две кнопки отправки.В зависимости от того, на какую кнопку нажимает пользователь, я хочу, чтобы перенаправление на form.is_valid () было либо страницей A, либо страницей B. Знаете ли вы, как я могу прикрепить другое значение к каждой кнопке отправки и передать это значение назапрос POST, чтобы я мог оценить его на мой взгляд?

template.html

<div class="submitbutton"">
                <button type="submit">
                   Submit A
                </button>
            </div>

  <div class="submitbutton"">
                <button type="submit">
                   Submit B
                </button>
            </div>

views.py

 if request.method == 'POST':

    <!-- a bunch of code that works -->


   if user_clicked_SubmitA:     
         return redirect('profile')

   if user_clicked_SubmitB:
         return redirect('home')

Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Вы можете сделать что-то, как показано ниже

def my_view(request):
    post_data = request.POST
    if '_submit1' in post_data:
        return HttpResponseRedirect("")
    elif '_submit2' in post_data:
        return HttpResponseRedirect("")
    elif '_submit3' in post_data:
        return HttpResponseRedirect("")
    else:
        return HttpResponseRedirect("")



<form action="<view_url>">
<input type="submit" name="_submit1" />
<input type="submit" name="_submit2" />
<input type="submit" name="_submit3" />
</form>
0 голосов
/ 15 октября 2018

Добавьте атрибут name к вашей кнопке:

<button type="submit" name="btn1" value="btn1">Button 1</button>
<button type="submit" name="btn2" value="btn2">Button 2</button>

и проверьте его в представлении:

def my_view(request):
    if request.POST.get('btn1'):
        # first button clicked
    if request.POST.get('btn2'):
        # second

Обновление: добавлены атрибуты value в <button> тегов.

...