2014-02-07 3 views
1

Таким образом, при создании сигнала, мы делаем signals.py файл, который выглядит, как например:Django пользовательские сигналы

from django.dispatch import Signal 

some_signal = Signal(providing_args=["arg_1","arg_2",...,"arg_n"]) 
#... 

теперь мой вопрос, что, если аргументы, которые вы собираетесь предоставить не всегда собирается быть одна и та же? Как бы вы создали сигнал с такой гибкостью?

ответ

3

Если вы read the documentation:

Все сигналы django.dispatch.Signal экземпляры. Предоставление_арги - это список имен аргументов, которые сигнал будет предоставлять слушателям. Это чисто документально, однако, поскольку нет ничего, что проверяет, действительно ли сигнал передает эти аргументы своим слушателям.

и если вы посмотрите на подпись для send метода:

Signal.send (отправитель, ** kwargs)

вы заметите, что он просто принимает один аргумент и многие аргументы ключевых слов, которые вы хотите, чтобы вы могли отправлять столько сигналов, сколько хотите, к вашим сигналам.

+0

Не могу поверить, что я пропустил это, когда я просмотрел документ тации. Ну, что ж, спасибо! –

Смежные вопросы