2017-02-14 6 views
0

django 1.10では、変数をミドルウェア例外ハンドラに渡すにはどうすればよいですか?Djangoで変数から例外へのミドルウェアを渡すには?

以下の例では、process_exception()の渡されたリスト([1,2,3])にアクセスしたいとします。

views.py

class my_exception(Exception): 
    def __init__(self, value): 
     self.value = value 
    def __str__(self): 
     return repr(self.value) 

def my_view(request): 
    ... 
    my_var = [1,2,3] # Want to pass this to exception middleware 
    raise my_exception(my_var) 

middleware.py

from django.utils.deprecation import MiddlewareMixin 

class ExceptionMiddleware(MiddlewareMixin): 
    # Has been added to settings.py middleware list 
    def process_exception(self, request, exception): 
     if type(exception) == my_exception: 
      # How to access my_var here? 
     ... 
+2

「exception.value」だけではないでしょうか?たぶん私は何かが不足しているかもしれませんが、例外があなたがチェックしているクラスと一致するならば、あなたはそれを作成するために使用したデータを持っているはずです。 – themanatuf

+0

はい、それは働いた:)それを答えとして作りたいですか? – user984003

+0

ちょうど、ありがとう! – themanatuf

答えて

1

例外はあなたがチェックしているクラスに一致するので、それはちょうどexception.valueだろう。例外には、作成に使用したデータがあります。

関連する問題