DJANGO: перенаправление в многошаговой форме - PullRequest
2 голосов
/ 23 мая 2011

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

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

# this is my tz_create view
def makingx(request):
    try:
        #this is to check if user has filled info already before
        dashprofile =  DashboardProfile.objects.get(user=request.user)
        #some view stuff
        context = {

        'user':user
         }
        return render_to_response(
        'done.html',
        context,
        context_instance = RequestContext(request),
         )

    except DashboardProfile.DoesNotExist:
        #some more stuff
        if request.method == "POST":
            if form.is_valid():
                #more view stuff
                request.session['created_busi'] = True

                return HttpResponseRedirect(reverse('tx_create'))
        else:
            return render_to_response(
                 'd12.html',
                 {
                  'user':user},

             context_instance = RequestContext(request)
               )

мое представление tx_create:

def promocamp(request):
    if 'created_info' not in request.session:
        return HttpResponseRedirect(
            reverse('tz_create')
        )

    user = request.user
    if request.method == "POST":
        if campaign.is_valid():
           #some stuff
            if 'next' in request.POST:
                next = request.POST['next']
            else:
                next = reverse('busi_create')
                return HttpResponseRedirect(next)
    return render_to_response(
            'd14.html',
            {'CampaignForm':campaign,
            'user':user},

                 context_instance = RequestContext(request)
                   )

Шаг долженперейти от tz к tx создать Однако tx_create, кажется, никогда не появляется ... что я должен делать / что может быть ошибка?

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Где вы устанавливаете session['created_info']?

if 'created_info' not in request.session...

Кроме того, где вы используете request.session['created_busi']?

0 голосов
/ 23 мая 2011

Из вашего кода я вижу, что return HttpResponseRedirect(reverse('tx_create')) вызывается при трех условиях:

  1. DashboardProfile.DoesNotExist должен быть поднят
  2. Метод запроса должен быть "POST"
  3. форма должна быть действительной

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

...