6

Se si dispone di 2 visualizzazioni, la prima utilizza modelform che riceve le informazioni immesse dall'utente (data di nascita, nome, numero di telefono, ecc.) E la seconda utilizza queste informazioni per creare un tavolo.Django passare l'oggetto da vista a successivo per l'elaborazione

Come vi passare l'oggetto creato nella prima vista alla visualizzazione successiva in modo da poter utilizzare nel modello della seconda vista

Apprezzerei tutto l'aiuto che si può condividere

risposta

9

Un approccio è quello metti l'oggetto in una sessione nella tua prima vista, che potrai poi recuperare dalla request.session nella seconda vista.

def first_view(request): 
    my_thing = {'foo' : 'bar'} 
    request.session['my_thing'] = my_thing 
    return render(request, 'some_template.html') 

def second_view(request): 
    my_thing = request.session.get('my_thing', None) 
    return render(request, 'some_other_template.html', {'my_thing' : my_thing}) 
+0

potresti chiarire cosa intendi con questo? forse un link a un documento django rilevante? Sto ancora imparando questa roba Grazie per la tua risposta! – JohnnyCash

+0

Ho aggiunto un esempio alla mia risposta per te. – Brandon

+0

sembra che potrebbe funzionare per me! Un'ultima domanda però, (nudo con me mi dispiace) .. come faccio a chiamare il modulo salvato dal modello? li chiamo in base a come vengono chiamati nel modello per la prima vista? Grazie ancora! – JohnnyCash

2

Utilizzare un HttpResponseRedirect per dirigere la visualizzazione della tabella w/id dell'oggetto appena creato. Ecco un esempio abbreviato:

def first(request): 
    if request.method == 'POST': 
      form = MyModelForm(request.POST, request.FILES) 
      if form.is_valid(): 
       my_model = form.save() 

       return HttpResponseRedirect('/second/%s/' % (my_model.pk)) # should actually use reverse here. 
     # normal get stuff here 

def second(request, my_model_pk): 
    my_model = MyModel.objects.get(pk=my_model_pk) 

    # return your template w/my model in the context and render 
+0

Come faresti allora a chiamare l'oggetto? Ti dispiacerebbe fornire un breve esempio? Grazie! – JohnnyCash

+0

@JohnnyCash: Ecco qua. – sdolan

Problemi correlati