Передача контекста в ответ и использование его в представлении - PullRequest
0 голосов
/ 13 марта 2019

Я работаю над веб-приложением и хочу использовать HttpResponse или HttpResponseRedirect вместо render. Но я не знаю, как передать контекст в ответ, так как он не имеет параметра контекста, как рендер. А также как использовать переданный контекст в URL или представлении?

Вот мой просмотр :

@login_required
def view_task_description(request):
    if request.method == 'POST':
        task_description = GetTaskDescription(data=request.POST, user=request.user)
        if task_description.is_valid():
            obj = GetTaskDescription.get_task_description(task_description)
            return render(request, 'todoapp/task_desc.html', context={'description': obj[0].description})
    return render(request, 'todoapp/select_task_description.html', context={'view_tasks': GetTaskDescription(user=request.user)})

Я хочу использовать Redirect или ResponseRedirect с контекстом вместо рендера, который я возвращаю, если моя форма верна. По сути, рендеринг по-прежнему показывает ответ как метод POST, и я хочу, чтобы ответ был GET. Как я могу это сделать? Спасибо.

1 Ответ

0 голосов
/ 13 марта 2019

Вы можете просто создать новый вид для этого. Затем свяжите его с существующим представлением, используя redirect . Например:

# view
from django.shortcuts import get_object_or_404


@login_required
def get_task_description(request, pk):
   obj = get_object_or_404(TaskDescriptionModel, pk=pk)
   return render(request, 'todoapp/task_desc.html', context={'description': obj.description})

# url

url(r'^some_path/(?P<pk>[0-9]+)/$', get_task_description, name="get_task_description")

# linking to existing view

 from django.shortcuts import redirect
 ...

     if task_description.is_valid():
        obj = GetTaskDescription.get_task_description(task_description)
        return redirect('get_task_description', pk=obj[0].pk)  # <-- Pointing the new view
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...