我看过几篇关于“AttributeError:'unicode'对象没有属性'get'”的帖子,但没有解决我的问题。
我正在尝试使用formiew重定向到我的下载页面。
我从formview覆盖form_valid函数以重定向到我的/ download url
def form_valid(self, form):
clean_form = form.cleaned_data
print clean_form.get('starttime')
return reverse('accesslogs_download', kwargs={'domain': self.get_object().domainname}) + "?a=b&b=c"
这应该重定向到: “/ download?a = b& b = c”但我被重定向到我的formView,出现以下错误:
AttributeError:'unicode'对象没有属性'get'
我的完整回溯是:
内部服务器错误:/serverlogs/business.sla.nl/accesslogs/realtime/view
追踪(最近一次通话): 在get_response中输入文件“/home/jasperf/.virtualenvs/servicepanel/local/lib/python2.7/site-packages/django/core/handlers/base.py”,第131行
response = middleware_method(request,response)
文件“/home/jasperf/.virtualenvs/servicepanel/local/lib/python2.7/site-packages/django/middleware/clickjacking.py”,第32行,在process_response中
如果response.get('X-Frame-Options')不是None: AttributeError:'unicode'对象没有属性'get'
我如何解决此问题并重定向到/下载?a = b& b = c
注意:我不打算使用变量a或b,但是当你可以到达那个url时,我可以在那里放置我自己的变量。
答案 0 :(得分:4)
您无法返回reverse
的结果 - 这只是一个字符串。您需要返回重定向;通常,您可以使用reverse
代替并直接传递URL参数,但在您的情况下,您希望附加查询参数,因此您仍需要显式调用它。
destination = reverse('accesslogs_download', kwargs={'domain': self.get_object().domainname}) + "?a=b&b=c"
return redirect(destination)