Если я посылаю сигнал из функции модуля (функция просмотра 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.