Python:';unicode';对象没有属性';追加';
我正在使用Django,我正在尝试创建一个函数,将访问过的页面的名称存储在Python:';unicode';对象没有属性';追加';,python,django,Python,Django,我正在使用Django,我正在尝试创建一个函数,将访问过的页面的名称存储在request.session中。但是,我在尝试将变量附加到请求的行中不断遇到错误“'unicode'对象没有属性'append'”。会话['visted_pages']我在线搜索,但没有找到任何解决问题的方法,我确实发现您无法直接附加到请求。会话['visted_pages'],相反,您必须创建一个单独的数组。我这样做了,但这并没有解决我的问题。这是我的密码: def index(request): visite
request.session
中。但是,我在尝试将变量附加到请求的行中不断遇到错误“'unicode'对象没有属性'append'”。会话['visted_pages']
我在线搜索,但没有找到任何解决问题的方法,我确实发现您无法直接附加到请求。会话['visted_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']
您需要替换以下行:
request.session['visited_pages'] = current_url
与:
因此会话中的已访问页面
项是列表
,而不是unicode
对象
您还需要修改任何依赖于或调用
get\u visitored\u pages
的代码,因为我们已将返回值从unicode
更改为list
您能告诉print(visitored\u pages)
和print(type(visitored\u pages))的输出吗
?@MYGz我无法在页面上打印任何内容,因为追加行中出现了错误注释。在上面插入一个打印。@MYGz值是index(这很好),类型是'unicode',这在刷新会话后修复了它!谢谢:)
request.session['visited_pages'] = [current_url]