Как вызвать просмотр формы в шаблоне HTML - PullRequest
0 голосов
/ 26 сентября 2019

Я хочу сделать шаблон HTML, в котором я хочу сделать три формы (A, B и C). Форма должна загружаться по умолчанию и иметь две кнопки для открытия формы B и C. Форма должна вызывать представление. A и захват данных.

Теперь при нажатии кнопки Форма B должна быть загружена и получить данные из вида. B как и для C

<form name='A' > 
    //should call view.A 
    button B <-- should call Form B and form B grab data from B 
    button C <-- should call Form c and form C grab data from C 
</form>

Я не знаю, возможно это или нет.Пожалуйста, помогите.

1 Ответ

1 голос
/ 26 сентября 2019

Вы можете сделать это технически, используя один вид и один шаблон для рендеринга 3 форм, а затем использовать URL-адрес действия, ссылающийся на 3 отдельных вида, например:

def 3_forms_view(request):
    form_a = YourFormA(request.POST or None)
    form_b = YourFormB(request.POST or None)
    form_c = YourFormC(request.POST or None)
    context = {
        "form_a": form_a,
        "form_b": form_b,
        "form_c": form_c,
    }
    return render(request, '3_form_template.html', context)

def view_a(request):
    form_a = YourFormA(request.POST)
    if form_a.is_valid():
        #do something
        form_a.save()
        return HttpResponseRedirect('your_succsess_url')
    # in case the form is not valid call back the view 
    # which handle the 3 form display
    return 3_forms_view(request)

def view_b(request):
    form_b = YourFormB(request.POST)
    if form_b.is_valid():
        #do something
        form_b.save()
        return HttpResponseRedirect('your_succsess_url')
    # in case the form is not valid call back the view 
    # which handle the 3 form display
    return 3_forms_view(request)

#same thing for view c

3_form_template :

<form action="{% url 'view_a_url_name' %}" method="post">
  {% csrf_token %}
  {{ form_a.as_p }}
  <button type="submit">Submit A</button>
</form>
<form action="{% url 'view_b_url_name' %}" method="post">
  {% csrf_token %}
  {{ form_b.as_p }}
  <button type="submit">Submit B</button>
</form>
<form action="{% url 'view_c_url_name' %}" method="post">
  {% csrf_token %}
  {{ form_c.as_p }}
  <button type="submit">Submit C</button>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...