我的django应用程序具有一个表单视图,用于提交创建新帖子的信息,然后应将其重定向到谢谢页面。
def submit(request, slug):
account = get_object_or_404(Account, slug=slug)
if request.method == "POST":
# process the data and post form as JSON
ret = create_or_edit_post(request, account, post=None, duplicate=False)
if isinstance(ret, HttpResponseRedirect):
post = account.posts.latest('id')
# handle post info and post creation
return redirect(reverse('post-submit-ty', kwargs={'slug': account.slug}))
return ret
context = { "account": account }
return render(request, 'submit.html', context)
由于redirect(reverse(...))返回一个元组,因此抛出:
AttributeError: 'tuple' object has no attribute 'get'
File "django/core/handlers/base.py", line 131, in get_response
response = middleware_method(request, response)
File "newrelic/hooks/framework_django.py", line 325, in wrapper
return wrapped(*args, **kwargs)
File "django/middleware/clickjacking.py", line 32, in process_response
if response.get('X-Frame-Options') is not None:
因为我需要传递slug
kwarg(作为元组)并重定向到“谢谢”页面,但它正在寻找http响应,是否可以使用redirect(reverse)
或HttpResponseRedirect(reverse)
处理此问题?谢谢
实际上,您可以传递带有参数的视图名称,并且redirect
将在内部执行reverse
。
尝试一下,redirect('post-submit-ty',slug=account.slug)
。