Почему не рендеринг шаблона - PullRequest
0 голосов
/ 29 апреля 2020

Это мой вид создания, я хочу вызывать каждую форму по одному. при получении формы организатора второго шага после отправки формы она ничего не делает вместо рендеринга следующей формы и html

я хотел создать venue_form, создать organizer_form, сохранить ее и заполнить их событием перед сохранением event_form, но шаблон event_form не отображается.

Что я делаю не так.

def create_event(request, step=None):
venue_form = VenueForm()
organizer_form = OrganizerForm()
event_form = EventForm()
ctx = {
    'venue_form': venue_form,
    'organizer_form': organizer_form,
    'event_form': event_form,
}
if request.method == "POST":
    venue_form = VenueForm(request.POST)
    return render(request, 'event/organizer_form.html', ctx)
if request.method == "POST":
    organizer_form = OrganizerForm(request.POST)
    return render(request, 'event/event_form.html', ctx)
else:
    return render(request, 'event/venue_form.html', ctx)

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Для меня это звучит так, как будто вы хотите иметь «мастера форм», который позволяет вам иметь несколько форм в разных шагах. Я успешно использовал эту библиотеку для этого: https://django-formtools.readthedocs.io/en/latest/wizard.html

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

Если вы используете Django <1.8, он интегрирован. Но они удалены в 1.8 (<a href="https://docs.djangoproject.com/en/1.8/releases/1.8/#removal-of-django-contrib-formtools" rel="nofollow noreferrer">https://docs.djangoproject.com/en/1.8/releases/1.8/#removal -of- django -contrib-formtools ).

0 голосов
/ 29 апреля 2020

Существует дублированный оператор:

if request.method == "POST":

Следовательно, интерпретатор выполняет только первый.

...