2014-06-18 30 views
-2

我正在尋找一些方向。 我有一個有相當數量的意見的Django項目。我需要做的是在外部應用程序完成任務後,將給定用戶重定向到成功URL。如何在Django命中通知URL後重定向用戶?

什麼我迄今所做的就是建立一個視圖,其相應的條目在urls.py

# views.py 
def notifyURL(request): 
    return HttpResponseRedirect('/success_page/') 

notifyURL是我用一個簡單的GET請求編寫的外部應用程序的打擊。但似乎Django不會重定向瀏覽器,而是調用(無頭)應用程序。

我該如何做這項工作?

在此先感謝。

回答

1

你要求的是不是真的可以通過'重定向'。

您只能在該用戶發出請求的位置重定向用戶。如果用戶提出請求並收到響應,則不能在稍後「重定向」用戶以響應稍後在後端發生的其他事件。

您需要的是後端Django應用程序通知前端(即Javascript應用程序)發生事件並且應該通過javascript將用戶轉發到新URL的某種方式。

有兩種方法:

  1. 「投票」 - 那裏的JavaScript定期聯繫後端,例如用setInterval計時器通過AJAX請求狀態的URL。這可能是使用Django最容易實現的。
  2. 'push' - 後端直接聯繫前端...這基本上意味着使用WebSockets,這對於Django(或任何WSGI python Web框架)來說並不那麼容易。雖然https://django-omnibus.readthedocs.org/en/latest/
+0

請看這裏。感謝您的提示。但是,如何通知django本身完成一項任務?這些任務根本不是由django處理,而是由外部的網絡應用程序處理。 – kstratis

+0

@ Konos5基本上,在django應用程序上調用一個url,看到我的答案類似的問題在這裏http://stackoverflow.com/a/24269158/202168 – Anentropic

+0

謝謝。我試過了你的定製版本,並且工作正常。但是,Django在完成任務時應該如何通知*適當*用戶? (我現在不介意輪詢或進展 - 我只是需要某種信號到正確的目的地)。 Django通知是否有關? – kstratis