Python:';unicode';对象没有属性';追加';

Python:';unicode';对象没有属性';追加';,python,django,Python,Django,我正在使用Django,我正在尝试创建一个函数,将访问过的页面的名称存储在request.session中。但是,我在尝试将变量附加到请求的行中不断遇到错误“'unicode'对象没有属性'append'”。会话['visted_pages']我在线搜索,但没有找到任何解决问题的方法,我确实发现您无法直接附加到请求。会话['visted_pages'],相反,您必须创建一个单独的数组。我这样做了,但这并没有解决我的问题。这是我的密码: def index(request): visite

我正在使用Django,我正在尝试创建一个函数,将访问过的页面的名称存储在
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]