我正在使用Django而我正在尝试创建一个函数来存储request.session
中访问过的页面的名称。但是我一直得到错误“'unicode'对象没有属性'append'”在我尝试将变量附加到request.session['visited_pages']
的行上我在网上搜索了,我没有找到解决问题的任何东西,我确实发现你无法直接附加到request.session['visited_pages']
,而是必须创建一个单独的数组。我做到了但这并没有解决我的问题。这是我的代码:
def index(request):
visited_pages = get_visited_pages(request)
context = {
"visited_pages": visited_pages
}
return render(request, 'website/index.html', context)
def get_visited_pages(request):
current_url = resolve(request.path_info).url_name
if not 'visited_pages' in request.session or not request.session['visited_pages']:
request.session['visited_pages'] = current_url
else:
visited_pages_array = request.session['visited_pages']
visited_pages_array.append(current_url)
request.session['visited_pages'] = visited_pages_array
return request.session['visited_pages']
答案 0 :(得分:2)
您需要替换以下行:
request.session['visited_pages'] = current_url
使用:
request.session['visited_pages'] = [current_url]
以便会话中的visited_pages
项是list
而不是unicode
对象。
您还需要修改任何依赖或调用get_visited_pages
的代码,因为我们已将返回值从unicode
更改为list
。