2017-01-18 5 views
2

私はDjangoを使用しています。訪問したページの名前を格納する関数を作成しようとしています。request.session。しかし、私はエラーを取得し続ける "'unicode'オブジェクトには、変数を追加しようとする行に" append "という属性はありませんrequest.session['visited_pages']私はオンラインで検索しましたが、問題を解決したものは何も見つかりませんでした。 request.session['visited_pages']に直接追加することはできません。代わりに別の配列を作成する必要があります。私はそれをしましたが、それは私の問題を解決しませんでした。Python: 'unicode'オブジェクトに 'append'属性がありません

request.session['visited_pages'] = current_url 

と::セッション中visited_pages項目がlistないunicodeある

request.session['visited_pages'] = [current_url] 

ので、あなたが次の行を交換する必要が

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

'print(visited_pa​​ges)'と 'print(type(visited_pa​​ges)) 'の出力を教えてください。 – MYGz

+0

@MYGzエラーのため、ページ上に何も印刷できません。 – Sander

+0

追加行をコメントアウトしてください。その上にプリントを挿入します。 – MYGz

答えて

2

:ここに私のコードですオブジェクト。

戻り値をunicodeからlistに変更したため、依存するコードを変更するか、get_visited_pagesを呼び出す必要があります。

+0

これは、セッションをフラッシュした後に修正されました!ありがとうございました :) – Sander

関連する問題