render_to_response объединяет URL с текущим URL - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть вид, чтобы удалить запись при нажатии на якорь на странице индекса. Я хочу перенаправить на текущую страницу после запуска этого view.in urls.py:

(r'^airAgency/(?P<key>[a-zA-Z0-9]+)/tour/delete/(?P<tour_id>\d+)/$','airAgency.views.deletetour'),
(r'^airAgency/(?P<key>[a-zA-Z0-9]+)/$','airAgency.views.index'),

в views.py:

def deletetour(request,key,tour_id):
   tour=Tour.objects.get(pk=tour_id)
   tour.delete()
   top5news=News.objects.filter(User__agentposition__AgentCode__id=agn.id).order_by('-ActionDate')[:5]
   return render_to_response('airAgency/index.html/',{'top5news':top5news},context_instance=RequestContext(request))

представьте, теперь браузер находится по этому адресу:

http://127.0.0.1:8080/airAgency/mastane

когда я нажимаю на якорь, который перенаправляет меня в представление deletetour, после удаления записанного браузера найдите этот URL:

http://127.0.0.1:8080/airAgency/mastane/tour/delete/4/airAgency/index.html/

но я хочу снова перенаправить на первый URL:

http://127.0.0.1:8080/airAgency/mastane

Обратите внимание, что мне тоже нужен объект RequestContext. Я имею в виду, что HttpResponseRedirect мне не подходит.

Заранее

Ответы [ 3 ]

2 голосов
/ 09 ноября 2011

Если вы решили использовать HttpResponseRedirect, попробуйте это:

return HttpResponseRedirect(request.META.get('HTTP_REFERER','/'))
1 голос
/ 09 ноября 2011

Если вам нужен объект RequestContext только для отображения сообщения об успешном удалении, которое вы можете использовать django.contrib.messages framework.

1 голос
/ 09 ноября 2011

Когда вы находитесь в обработчике для другого URL, вы не можете изменить URL без перенаправления. Если вам нужно сохранить состояние в исходном URL-адресе, когда вы вернетесь к нему, закодируйте его в параметры получения URL-адреса, на который вы перенаправляете обратно.

Кроме того, не уверен, что вы уже делаете это, но удаление записи действительно должно выполняться в POST, а не в get.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...