18

モジュール関数 (Django ビュー関数) からシグナルを送信した場合、それはクラス内にありません。この場合はsender=None適切ですか?

または、関数は HTTP リクエストによって呼び出されます。現在、別の引数として渡していますが、代わりにそれを渡す必要がありますか?

オプション A:

from django.dispatch import Signal
my_signal = Signal(
    providing_args=['my_arg', 'request']
)    

# this is a view function
def do_something(request):
    # ... do useful stuff
    my_signal.send(
        sender=None,
        my_arg="Hello",
        request=request
    )

オプション B:

from django.dispatch import Signal
my_signal = Signal(
    providing_args=['my_arg']
)    

# this is a view function
def do_something(request):
    # ... do useful stuff
    my_signal.send(
        sender=request,
        my_arg="Hello",
    )

[アップデート]

オプションAにはそれがあります。この場合、受信者が送信者に対してできることは何もない (つまり、オブジェクトではない) ため、None に設定します。

4

2 に答える 2