【发布时间】:2016-03-09 14:55:17
【问题描述】:
这里是新手,他学习了使用 Flask 使用 python 开发 Web 应用程序。现在我正在尝试通过用 django 重做同一个应用程序来学习 django 1.9。 现在,我一直在尝试获取当前 URL 并将其作为参数传递,以便用户可以在下一页上的操作完成后返回。
在 Flask 中,要返回上一个 URL,我会使用 'next' 参数和 request.url 在更改页面之前获取当前 url。
在模板中你会发现这样的内容:
<a href="{{ url_for('.add_punchcard', id=user.id, next=request.url) }}">Buy punchcard :</a>
在视图中:
redirect(request.args.get("next"))
我认为它与 django 大致相同,但我无法使其工作。我确实找到了一些建议,但它们适用于较旧的 django 版本(早于 1.5)并且不再起作用(而且随着解决方案的发展,它们非常令人震惊!)
现在,在我看来我正在使用
return redirect(next)
注意:如果我根据网络上似乎总是使用 return HttpResponse(... .
在模板中我有
<a href="{% url 'main:buy_punchcard' member.id next={{ request.path }} %}">Buy punchcard</p>
但这实际上返回一个错误
无法解析余数:'{{' from '{{'
我确实在 settings.py 中添加了 context_processors
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
)
但这只是一连串错误中的最后一个错误。底线是,我不能让它工作。
因此,任何人都可以为我指出正确的方向,即在 django 1.9 中执行此操作的方法是什么?它看起来像一个非常基本的功能,所以我认为它会更容易。
【问题讨论】:
-
如果您链接到您尝试过但不起作用的解决方案,这可能会有所帮助。我想不出为什么 Django 1.5 的解决方案今天行不通。请注意,
redirect是多年前在 Django 1.1 中添加的。使用HttpResponseRedirect没问题,如果您愿意,也可以轻松转换为使用redirect。
标签: django django-templates django-views