2016-08-06 5 views
0

あなたの助けがひどく必要です。私は現在、フラッシュを使用して文字列値を渡そうとしていますが、正しく取得したかどうかはわかりません。'WSGIRequest'オブジェクトには 'flash'という属性はありません

これは私のコードです:

def first_view(request): 
    request.flash['message'] = 'Operation succeeded!' 
    return HttpResponseRedirect(reverse(second_view)) 

def second_view(request): 
    print request.flash['message']      
    request.flash.keep('message') 
    return HttpResponseRedirect(reverse(third_view)) 

私は、このエラーメッセージが表示されましたがHttpResponseRedirectを介してメッセージ(second_viewする「操作が成功した」)を渡したいと思います。私はPythonとDjangoを初めて使っているので、これは私には分かりません。あなたの助けは非常に高く評価されています。ありがとう

+0

なぜこの問題でdjangoメッセージフレームワークを使用しないのですか?これを解決するにはhttps://docs.djangoproject.com/en/1.9/ref/contrib/messages/ – Wtower

+0

を管理しましたか? – e4c5

答えて

1

デフォルトでは、django HttpRequestオブジェクトにはflashという名前の属性はありません。そのため、このエラーが発生しています。使用可能な属性は次のとおりです。https://docs.djangoproject.com/en/1.9/ref/request-response/#httprequest-objects

ただし、追加できない理由はありません。

def first_view(request): 
    request.flash = {'message'] : 'Operation succeeded!'} 
    return HttpResponseRedirect(reverse(second_view)) 

def second_view(request): 
    try: 
     print request.flash['message']      
     request.flash.keep('message') 
    except: 
     pass 
    return HttpResponseRedirect(reverse(third_view)) 

ここからあなたのflash.keepはどこから来ているのですか? wtowerで指摘されているように、この種のものについてはdjango messages frameworkに依存するのがより一般的です。

関連する問題