AJAX не используется для перенаправления, он используется для асинхронного получения данных с сервера.
Но если вы действительно хотите перенаправить, вместо рендеринга шаблона (который не будет работать), верните HttpResponse
, содержащий URL-адрес, на который вы хотите перенаправить, а в функции AJAX success
используйте возвращенные данные перенаправить из JavaScript.
Таким образом, код javascipt будет выглядеть примерно так:
$.ajax({
url: "<your url>",
data: <whatever data you want to send>,
success: function(new_url){
window.location = new_url;
}
});
И обработчик Django:
def document_status(request):
# Do stuff...
return "http://url/you/wand/to/redirect/to"
Редактировать
Чтобы ответить на вопрос в комментарии, это один из способов сделать это:
Первый HTML-шаблон для страницы A:
<form action="http://url/of/page/B">
<select name="value" onchange="this.form.submit();">
<option value="1">First option</option>
<option value="2">Second option</option>
</select>
</form>
Код представления для страницы A не должен изменяться, поэтому представление для страницы B:
def page_b_view(request):
value = request.GET.get('value', '0') # '0' is default value if not found
if value = '1':
# Add some context variables here
elif value == '2':
# Add some other context variables here
return render_to_template(...)
Надеемся, это даст вам подсказки о том, как это сделать или что искать.