Je travaille avec des signaux Django, mais ils semblent être reçus deux fois, même s'ils sont émis une fois. Voici le code que je travaille avec (c'est un emballage simple à utiliser Uploadify avec Django) ...Signal Django émettant une fois, reçu deux fois - Pourquoi?
# Signal-emitting code... emits whenever a file upload is received
# ----------------------------------------------------------------
upload_recieved = django.dispatch.Signal(providing_args=['data'])
def upload(request, *args, **kwargs):
if request.method == 'POST':
if request.FILES:
print 'sending signal'
upload_recieved.send(sender='uploadify', data=request.FILES['Filedata'])
return HttpResponse('True')
# Signal-receiving code...
# ----------------------------------------------------------------
def upload_received_handler(sender, data, **kwargs):
print 'upload received handler'
print 'connecting signal'
upload_recieved.connect(upload_received_handler)
(je viens de remarquer mon signal est mal orthographié)
Je suis sûr que vous remarqué les déclarations d'impression là-bas. Sur la console, voici ce qu'il nous montre:
(server starts)
connecting signal
...
sending signal
upload received handler
upload received handler # << == where is this 2nd one coming from?
127.0.0.1 - - [25/Sep/2009 07:28:22] "POST /uploadify/upload/ HTTP/1.1" 200 -
(aussi étrange est pourquoi rapport Django le POST page après que les signaux sont tirés?)
Quant à savoir pourquoi la ligne du journal POST vient après, je crois que le le serveur attend jusqu'à ce que la requête soit terminée pour se connecter - alors seulement peut-il savoir s'il y a eu une erreur de serveur entraînant un code d'état 500 par rapport à une demande réussie, combien de temps la demande a-t-elle reçue? – dcrosta