【发布时间】:2014-09-04 20:16:11
【问题描述】:
我正在使用一个 API,它在重定向上一页之前将一些信息保存到用户配置文件中。它看起来像这样:
首先,在 feed.views 中加载 'home/id' 的视图
def home(request, id):
request.session["next"] = id
# do stuff to load the page, i.e. adding stuff to context dictionary
return render_to_response('home/' + id + '.html', context)
使用 API 捕获注册的视图:
def API(request):
user = request.user
# get some info from api here
user.save()
redirect_url = '/home/' + request.session["next"]
return redirect(redirect_url, permanent=True)
问题:这不会将信息保存到“用户”,但仍会重定向回“家庭/ID”。我之前试过这个,实际上出于某种原因保存了信息:
def API(request):
user = request.user
# same stuff
user.save()
from feed.views import home
return home(request, request.session["next"])
但是这种方式不会将 url 更改回上一页,这是我需要的。有什么想法我能做什么?
【问题讨论】:
-
您能否为每个不起作用的视图粘贴更多代码。在第一个你打电话给
user.save()而在第二个你不是。再加上你redirect urls在每个地方都不一样,所以也许这就是他们重定向到不同地方的原因。 -
完成,如果您需要更多,请告诉我
-
您在第二个 API 视图中缺少此内容:
redirect_url = '/home/' + request.session["next"],然后在您的“return”语句中进行测试。 -
这与我当时的第一个 API 视图完全相同。我试图证明第二个 API 视图的工作原理是将数据保存给用户,但第一个 API 视图不会将数据保存给用户。仔细看,两个return语句是不一样的。一个重定向,而第二个调用另一个视图函数。
标签: django api templates save models