我遇到了一个问题,找不到解决方案。我在导航栏中有一个按钮,该按钮在所有页面上都可用,并且负责创建一些内容。
与按钮相关联的视图:
与按钮相关联的视图:
def createadv(request):
uw = getuw(request.user.username)
if request.method =='POST':
form = AdverForm(request.POST, request.FILES)
if form.is_valid():
form.instance.user = request.user
form.save()
return HttpResponseRedirect('/', {'username': request.user.username, 'uw': uw})
args = {}
args.update(csrf(request))
args['username'] = request.user.username
args['form'] = AdverForm()
args['uw'] = uw
return render_to_response('createadv.html', args)
如果您现在可以看到,我总是在创建内容后重定向到主页'/',但我想返回到启动内容创建的页面。
get_success_url()
中放了什么?它应该返回 URL (next
),而不是响应 (HttpResponseRedirect(next)
)。 - Antoine PinsardHttpResponseRedirect(next)
而不仅仅是next
)。昨晚这里已经很晚了... 现在完美解决了! - Simonnext={{ request.path|urlencode }}
查询参数传递到产品页面的URL即可。接着,你可以使用href="{{ request.GET.next }}"
创建返回按钮。 - Antoine Pinsardnext = request.POST.get('next', '/')
中 '/' 的用法。当我应用它时,显然会将我发送回 '/'. 我认为代码的目的是将用户发送回不同的页面?那么为什么要使用'/'呢?我只是想问一下,因为我正在尝试实现这段代码,但我不知道如何将'/'应用到我的情况中。我正在尝试重定向到一个特定的 'xx/<page_id>' 页面,该页面最初是用户从中重定向到具有提交表单的产品页面的。如果更容易,我很乐意创建一个单独的问题。 - PhilM