Atualmente, estou usando a seguinte função para obter uma exibição de referência:
def get_referer_view(request, default=None):
referer = request.META.get('HTTP_REFERER')
if not referer:
return default
# remove the protocol and split the url at the slashes
referer = re.sub('^https?:\/\/', '', referer).split('/')
if referer[0] != request.META.get('SERVER_NAME'):
return default
# add the slash at the relative path's view and finished
referer = u'/' + u'/'.join(referer[1:])
return referer
Se eu redirecionei o view
resultado da lógica programática, por exemplo ..
return HttpResponseRedirect('dashboard')
... existe uma maneira de obter a visualização de referência sem usar HTTP_REFERER
para que eu possa usar essa variável no redirecionado view
? Isso nem sempre é definido nos cabeçalhos do navegador.
Observe que, como as visualizações são redirecionadas de forma programática, não posso usar o POST para coletar os dados.
Talvez seja possível definir e recuperar um cabeçalho personalizado de alguma forma?
HttpResponseRedirect
não é realmente programático - ele retorna a resposta http 302 real e força o navegador a fazer uma nova solicitação para o novo URL da exibição para a qual está sendo redirecionado ...
?came_from=inbox
. Ligado, Facebook, outros parecem fazê-lo, por isso deve ser uma boa prática.