Django передает объект из вида в следующий для обработки
Если у вас есть 2 представления, первый использует modelform, который принимает введенную информацию от пользователя (дата рождения, имя, номер телефона и т. д.), а второй использует эту информацию для создания таблицы.
Как бы вы передали созданный объект в первом представлении в следующее представление, чтобы вы могли использовать его в шаблоне второго представления
Я был бы признателен за любую помощь, которую вы можете поделиться
2 ответов
один из подходов заключается в том, чтобы поместить объект в сеанс в первом представлении, который затем можно получить из запроса.сеанс во втором представлении.
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})
использовать HttpResponseRedirect
чтобы перейти к представлению таблицы с идентификатором вновь созданного объекта. Вот сокращенный пример:
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