Jeśli wysyłam sygnał z funkcji modułu (funkcja widoku Django), która nie jest wewnątrz klasy, nie jest dla mnie oczywiste, czym powinien być nadawca - jeśli w ogóle coś takiego? Czy w tym przypadku jest odpowiednia sender=None
?Jeśli wysyłam pythonowi obiekt "Signal" z funkcji, jaki powinien być argument "nadawca"?
Alternatywnie, funkcja jest wywoływana przez żądanie HTTP, które obecnie przekazuję jako oddzielny argument - czy powinienem go przekazać zamiast tego?
Wariant 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
)
Wariant 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",
)
[Update]
Wariant A ma. Nie ma w tym przypadku nic użytecznego, co odbiornik może zrobić z nadawcą (tj. Nie jest obiektem), więc ustaw go na Brak.
sender = Brak. –